我和这个人有类似的问题: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
最佳答案
您实际上根本不需要这样做。在 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 中的连接字符串部分,这就是这一切发生的地方。然后在数据访问项目的上下文类中,您将注意到它如何告诉它创建数据库:
public class EntityContext : DbContext { static EntityContext() { //for example to create a db: Database.SetInitializer(new CreateDatabaseIfNotExists()); ... } }
关于asp.net-mvc-3 - 从 MVC 应用程序中的 EF Code-First DbContext 类生成 SQL CE 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023737/