我和这个家伙有类似的问题:Generate SQL CE database from EF Code-First DbContext class
我知道我需要使用
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
它必须在应用程序启动时执行..(我是MVC新手)哪里可以在MVC中找到这样的“Application_Start”?
修改 我解决了我的问题:必须将此代码插入global.asax
答案 0 :(得分:4)
你实际上根本不需要这样做。在web.config中指定上下文类的名称:
<connectionStrings> <add name="EntityDemoSite.DataAccess.EntityContext" connectionString="Data Source=|DataDirectory|EntityDemoSite.sdf" providerName="System.Data.SqlServerCe.4.0" /> </connectionStrings>
如果你的上下文类在同一个项目中(我的不是),那就改用name =“WhateverYourContextClassIsNamed”。
在这里查看我的示例项目: http://completedevelopment.blogspot.com/2011/10/codecamp-nyc-entity-framework-mvc-code.html 请注意mvc应用程序的web.config中的connectionstrings部分这就是它发生的全部内容。然后在数据访问项目的上下文类中,您将注意到它如何创建数据库:
public class EntityContext : DbContext { static EntityContext() { //for example to create a db: Database.SetInitializer(new CreateDatabaseIfNotExists()); ... } }