asp.net MVC 实体框架EF与数据库_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > asp.net MVC 实体框架EF与数据库

asp.net MVC 实体框架EF与数据库

 2014/7/4 13:00:50  天才卧龙  程序员俱乐部  我要评论(0)
  • 摘要:程序猿就是苦逼,每天还得分出一些时间去写博文。天真的很热,今天就随便写一点啦!1、EF初始化数据库的四中策略EF可以根据项目中的模型自动创建数据库。下面我们就分类看看EntityFramework数据库初始化四种策略一、//每次运行都会创建新的数据库Database.SetInitializer<XXXXXContext>(newDropCreateDatabaseAlways<XXXXXContext>());二
  • 标签:.net ASP.NET MVC net 数据库 数据

程序猿就是苦逼,每天还得分出一些时间去写博文。天真的很热,今天就随便写一点啦!

1、EF初始化数据库的四中策略

EF可以根据项目中的模型自动创建数据库。下面我们就分类看看Entity Framework数据库初始化四种策略

一、 //每次运行都会创建新的数据库

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

二、//只有第一次运行~才会创建新的数据库~默认的方式

     Database.SetInitializer<XXXXXContext>(new CreateDatabaseIfNotExists<XXXXXContext>());

三、 //修改模型后~运行~会创建新的数据库
   Database.SetInitializer<XXXXXContext>(new DropCreateDatabaseIfModelChanges<XXXXXContext>());

四、//使用自己配置的数据库,请到:web.config中配置自己的连接字符串,注意连接字符串的名称应与上下文:XXXXContext的名字一致。

     Database.SetInitializer<Models.musicStoreContext>(null);

注:以上代码请到Global.asax中加上,加上之后会有破浪线,请添加EF的命名空间:using System.Data.Entity;

 

 

 

 实例代码如下:

 

 protected void Application_Start()        

{            

//Entity Framework数据库初始化四种策略            

//自己去配置连接字符串            

Database.SetInitializer<Models.musicStoreContext>(null);            

//默认方式 第一次创建            

Database.SetInitializer<Models.musicStoreContext>(new CreateDatabaseIfNotExists<Models.musicStoreContext>());            

//每一次都会删除旧数据库然后创建新的数据库            

Database.SetInitializer<Models.musicStoreContext>(new DropCreateDatabaseAlways<Models.musicStoreContext>());            

//模型关系改变时创建新数据库            

Database.SetInitializer<Models.musicStoreContext>(new DropCreateDatabaseIfModelChanges<Models.musicStoreContext>());             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则会根据约定创建一个数据库。

好吧,讲的不太好,吃饭了!饿了!

 

发表评论
用户名: 匿名