【问题标题】:EF 6.0 Code first Compact Edition: incorrect connection string or app.config problems?EF 6.0 Code first Compact Edition:不正确的连接字符串或 app.config 问题?
【发布时间】:2014-03-03 08:16:37
【问题描述】:

请教您对此的建议:

我正在尝试创建 db 精简版, 第一次使用默认 dbName (ProjectName.dbContextName) 成功。 但我决定定义我自己的名字,并在 app.config 的 connectionString 部分添加我的连接字符串。未创建 db 之后。 从这里MSDN Use code first with connection by convention我做了类似的连接字符串:

 <connectionStrings>
    <add name="TestContext"
         providerName="System.Data.SqlServerCe.4.0"
         connectionString="Data Source=TestDb.sdf;"/>
  </connectionStrings>

(部分名称等于我的 dbcontext 的名称类。) 只是为了确定在创建 dbContext 之前:

Database.SetInitializer(new DropCreateDatabaseAlways<TestContext>());

Db 仍未创建。我究竟做错了什么?提前致谢。

VahidN,我尝试添加基类构造函数的调用,但不起作用。不明白。这应该很容易。正如上面参考文献中提到的,如果配置部分中的连接字符串的名称和名称 dbContext 类相等 - 对象可以毫无问题地找到它的连接字符串。

好吧,调试器说 conString 定义正确(等于配置部分中的字符串),但实际上没有创建 db - 我在 appfolder 和 sql server 文件夹中都找不到它。

【问题讨论】:

    标签: c# entity-framework ef-code-first compact-database


    【解决方案1】:

    您需要在连接字符串的名称中包含完整的命名空间。见here

    类似的东西

    <connectionStrings>
        <add name="YourNameSpace.TestContext"
             providerName="System.Data.SqlServerCe.4.0"
             connectionString="Data Source=TestDb.sdf;"/>
    </connectionStrings>
    

    【讨论】:

    • @Rayan:“编辑”某人的答案不是为了代码共享。如果您想为您的问题添加更多详细信息 - 编辑您的问题并在此处添加代码!
    【解决方案2】:

    哦,对不起,我没有提供足够的信息,因为 dbContext 中的实体被定义为 List,而不是 dbSet,所以没有创建 db。疏忽(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多