
DbContext是根据connectionString生成的数据库上下文类,具体的使用可以参见微软的msdn,如果是修改了模型的话,不要手动修改生成的代码,建议使用迁徙,因为有些文件手动修改后,再次运行就会覆盖代码,如果使用的是mvc迁徙比较容易,msdn有关于ef的迁徙,如果是webform的话,code first和model first迁徙很容易失败,最好使用database first,然后在model设计器中选择根据DB更新模型,再编译的话会更新相应的代码。
默认情况下,数据库是创建在localhost\SQLEXPRESS服务器上,并且默认的数据库名为命名空间+context类名,例如我们前面的BreakAwayBreakAwayContext。有几种方法可以改变这种默认约定。利用配置文件在配置文件中新加一个连接字符串注意这里连接字符串名称和我们的context类名相同,都为BreakAwayContext。我们修改了一下默认的数据库名,将BreakAwayBreakAwayContext改为BreakAwayConfigFile。我们在新增一个连接字符串新建的连接串名称和context类名不同了,所以我们要在BreakAwayContext的构造函数中指名连接串的名称:publicclassBreakAwayContext:DbContext{publicBreakAwayContext():base("name=My_Test"){}}利用DbConnectionDbContext有一个带DbConnection重载的构造函数,说明我们也可以通过DbConnection来定位数据库位置。我们也要先修改BreakAwayContext的构造函数:publicBreakAwayContext(DbConnectionconnection):base(connection,contextOwnsConnection:false){}调用:staticvoidMain(string[]args){try{varlodging=newLodging{Name="RainyDayMotel",};varresort=newResort{Name="TopNotchResortandSpa",MilesFromNearestAirport=30,Activities="Spa,Hiking,Skiing,Ballooning",};varcstr=@"Server=\SQLEXPRESS;Database=BreakAwayDbConnectionConstructor;Trusted_Connection=true";using(varconnection=newSqlConnection(cstr)){using(varcontext=newBreakAwayContext(connection)){contextLodgingsAdd(lodging);contextSaveChanges();}}}catch(SystemDataEntityValidationDbEntityValidationExceptionex){ConsoleWriteLine("保存失败");}ConsoleWriteLine("OK");ConsoleRead();}使用连接工厂控制数据库位置CodeFirst的默认连接工厂是SqlConnectionFactory。此连接工厂将使用SQLClient(SystemDataSqlClient的)数据库引擎连接到数据库。默认的行为,将选择在localhost\SQLEXPRESS创建数据库,并使用上下文类型的完全限定名作为数据库的名称。我们可以通过指定的连接字符串段,来覆写默认规则。staticvoidMain(string[]args){try{DatabaseDefaultConnectionFactory=newSqlConnectionFactory(@"Server=;Trusted_Connection=true");using(varcontext=newBreakAwayContext()){contextDatabaseInitialize(true);contextSaveChanges();}}catch(SystemDataEntityValidationDbEntityValidationExceptionex){ConsoleWriteLine("保存失败");}ConsoleWriteLine("OK");ConsoleRead();}PS:用这个方法好像没法指定数据库名,默认名称为context类的完全限定名。
以上就是关于asp.net 中 EF code first DbContext分别是什么,修改模型后,一定要迁移吗全部的内容,包括:asp.net 中 EF code first DbContext分别是什么,修改模型后,一定要迁移吗、EF 4中怎么生成ObjectContext、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)