程序猿就是苦逼,每天还得分出一些时间去写博文。天真的很热,今天就随便写一点啦! 1、EF初始化数据库的四中策略 EF可以根据项目中的模型自动创建数据库。下面我们就分类看看Entity Framework数据库初始化四种策略 一、 //每次运行都会创建新的数据库 Database.SetInitializer(new DropCreateDatabaseAlways()); 二、//只有第一次运行~才会创建新的数据库~默认的方式 Database.SetInitializer(new CreateDatabaseIfNotExists()); 三、 //修改模型后~运行~会创建新的数据库 Database.SetInitializer(new DropCreateDatabaseIfModelChanges()); 四、//使用自己配置的数据库,请到:web.config中配置自己的连接字符串,注意连接字符串的名称应与上下文:XXXXContext的名字一致。 Database.SetInitializer(null); 注:以上代码请到Global.asax中加上,加上之后会有破浪线,请添加EF的命名空间:using System.Data.Entity; 实例代码如下: protected void Application_Start() { //Entity Framework数据库初始化四种策略 //自己去配置连接字符串 Database.SetInitializer(null); //默认方式 第一次创建 Database.SetInitializer(new CreateDatabaseIfNotExists()); //每一次都会删除旧数据库然后创建新的数据库 Database.SetInitializer(new DropCreateDatabaseAlways()); //模型关系改变时创建新数据库 Database.SetInitializer(new DropCreateDatabaseIfModelChanges()); AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AuthConfig.RegisterAuth(); } 2、讲完了上述四中策略,下面就讲解一下EF的约定优先原则: EF会尽可能的使用约定而非配置,如果在程序运行时,不按照上述四方法配置具体的数据库连接方式,EF将按照约定创建一个连接,也就是根据模型关系创建一个数据库。EF 创建新数据库的过程如下: 首先EF将尝试连接SQLserverExpress的本地实例,并且查找与上下文:XXXXContext名字相同的数据库,如果EF找不到这个数据库,EF则会根据约定创建一个数据库。 from:http://m.blog.csdn.net/blog/jiangfei009003/38691327
View Details