EF 6.0 Code第一版Compact Edition:错误的连接字符串或app.config问题?

时间:2014-03-03 08:16:38

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

询问您的建议:

我正在尝试创建db compact edition, 第一次成功使用默认的dbName(ProjectName.dbContextName)。   但我决定定义自己的名字,并在connectionString中的app.config中添加我的连接字符串。 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,我试图添加基类构造函数的调用,但不起作用。不明白。应该很容易。如上面的参考文献中所述,如果config部分和名称dbContext类中的连接字符串的名称相等 - 对象找到其连接字符串没有问题。

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

2 个答案:

答案 0 :(得分:0)

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

像这样的东西

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

答案 1 :(得分:-1)

哦,对不起我提供的信息不足,没有创建db,导致dbContext中的实体被定义为List,而不是dbSet。无意中(