从Entity Framework 4模型生成SQL Server Express数据库

6

我可以使用代码优先生成来自动生成一个SQL Server CE 4.0 *.sdf文件,如Scott Guthrie在这里所解释的那样。相应的连接字符串如下:

<add name="NerdDinners" providerName="System.Data.SqlServerCe.4.0" 
connectionString="data  source=|DataDirectory|NerdDinner.sdf"/>

然而,如果我尝试使用以下连接字符串生成mdf文件,则会出现错误:“The provider did not return a ProviderManifestToken string.”。
<add name="NerdDinners" providerName="System.Data.SqlClient" connectionString="data 
source=|DataDirectory|NerdDinner.mdf"/>

即使使用以下连接字符串直接钩入SQLEXPRESS实例也会失败。
<add name="NerdDinners" providerName="System.Data.SqlClient" connectionString="Data 
 Source=.\SQLEXPRESS;Initial Catalog=NerdDinner;Integrated Security=True"/>

EF 4目前只支持使用SQL CE 4.0从模型创建数据库,或者我在这里做错了什么?

不知道,你尝试过先创建数据库,然后使用EF4创建模式吗? - user1228
不错!... 没有人有线索... - Cranialsurge
2个回答

4

我能够使用这个连接字符串在同一教程中与SQL Express一起工作。

<add name="NerdDinners" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=NerdDinners; AttachDbFilename=|DataDirectory|NerdDinners.mdf; Integrated Security=True; User Instance=True" providerName="System.Data.SqlClient" />

希望这能帮助未来的某个人。

1

顺便提一下,如果您无法让数据库自动创建,很可能是因为您使用的数据库用户没有被赋予足够的权限。我能够简单地进入 SQL 实例(而不是数据库)的 Security 并修改特定登录的 Securables,使其具有 Create Any Database 的权限(我没有授予任何其他权限),这样 EF4 就可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接