【问题标题】:Generate SQL Server Express database from Entity Framework 4 model从 Entity Framework 4 模型生成 SQL Server Express 数据库
【发布时间】:2011-05-30 13:58:50
【问题描述】:

我能够使用代码优先生成自动生成 SQL Server CE 4.0 *.sdf 文件,如 Scott Guthrie here 所述。相同的连接字符串如下:

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

但是,如果我尝试使用以下连接字符串生成 mdf,则会失败并出现以下错误 - “提供程序没有返回 ProviderManifestToken 字符串。”。

<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 创建架构?
  • 不错! ...没有人知道...

标签: sql-server entity-framework-4 sql-server-ce


【解决方案1】:

作为旁注。如果您正在努力让数据库自动创建,很可能是因为您使用的数据库用户没有获得足够的权限。我能够简单地转到 SQL Instance (而不是数据库)的 Security 并修改特定登录名的 Securables 以便它具有 Create Any Database 的权限(我没有t 授予任何额外的权利),它允许 EF4 做它的事情。

【讨论】:

    【解决方案2】:

    我能够让这个连接字符串在同一个教程中与 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" />
    

    希望这对将来的某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-09
      • 2011-07-09
      • 1970-01-01
      • 2011-04-30
      • 2011-05-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      相关资源
      最近更新 更多