Entity Framework Codefirst的配置步驟: (1) 安裝命令: install-package entityframework (2) 創建實體類,註意virtual關鍵字在導航屬性中的用法 (3) 創建DbContext類,為每個entity set創建一個DbSet; 指定 ...
Entity Framework Codefirst的配置步驟:
(1) 安裝命令: install-package entityframework
(2) 創建實體類,註意virtual關鍵字在導航屬性中的用法
(3) 創建DbContext類,為每個entity set創建一個DbSet;
指定一個連接字元串構造函數中的 base("AccountContext") 。
設置表的單數形式
public class AccountContext:DbContext { public AccountContext():base("AccountContext") //web.config文件資料庫連接字元串名稱 { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { //指定單數形式的表名 modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } }
(4)在Web.config中配置Entity Framework
配置連接字元串
(5)創建Initializer類, 使用EF初始化資料庫,插入示例數據
public class AccountInitializer:DropCreateDatabaseIfModelChanges<AccountContext> { /// <summary> /// 初始化資料庫,需要在配置 文件中配置EnityFramework /// </summary> /// <param name="context"></param> protected override void Seed(AccountContext context) { //初始化數據 var sysUsers = new List<SysUser> { new SysUser {UserName="Tom",Password="1", Email="[email protected]" }, new SysUser() {UserName="Jerry", Password="2",Email="[email protected]" } }; sysUsers.ForEach(s => context.SysUsers.Add(s)); context.SaveChanges(); } }
(6)修改web.config, 通知EF使用我們剛剛寫好的initializer類
<entityFramework> <!-- context 配置節中, type 的值對應 (context class的完整描述,程式集) databaseInitializer 配置節中 , type 的值對應 (initializer class 的完整描述,程式集)--> <contexts> <context type="ResTest.DAL.AccountContext,ResTest"> <databaseInitializer type="ResTest.DAL.AccountInitializer,ResTest"></databaseInitializer> </context> </contexts> </entityFramework>
至此 配置完成!