Entity Framework Power Tools是一個由EntityFramework開發小組提供的工具,它可以從現有資料庫生成Fluent款式的Code First代碼。 大致來說,這個工具有這樣幾個功能:1) 按照現有資料庫結構,生成Code First POCO class、DbCon
Entity Framework Power Tools是一個由EntityFramework開發小組提供的工具,它可以從現有資料庫生成Fluent款式的Code First代碼。
大致來說,這個工具有這樣幾個功能:
1) 按照現有資料庫結構,生成Code First POCO class、DbContext class和相應的mapping class。
2) 以designer模式或XML模式查看POCO class對應的Entity Data Model (edmx) 。
3) 查看Entity Data Model所對應的DDL。
4) 生成EF Generated View提高EF性能。
Entity Framework Power Tools安裝
1、VS-工具-擴展管理器-搜索:Entity Framework Power Tools-然後安裝
2、安裝完成後,然後重啟VS
在項目上單擊右鍵,在彈出的菜單中可以看到增加了一個Entity Framework的菜單項,裡面有一個Reverse Enginner Code First。單擊它以後出現選擇數據連接的視窗,建立好數據連接之後它會自動地生成所有數據表所映射的實體類和對應的映射類(放在Mapping文件夾中),並且還自動生成了DbContext類。用生成的這些類取代原來通過EF直接建立的實體類和Context,強大吧。
3、Entity Framework Power Tools生成的部分代碼
model news
using System; using System.Collections.Generic; namespace Web.Models { public partial class news { public int ID { get; set; } public string title { get; set; } public string cons { get; set; } public int counts { get; set; } public System.DateTime times { get; set; } } }
model admin
using System; using System.Collections.Generic; namespace Web.Models { public partial class admin { public int ID { get; set; } public string username { get; set; } public string password { get; set; } public Nullable<System.DateTime> logintimes { get; set; } } }
DbContext
using System.Data.Entity; using System.Data.Entity.Infrastructure; using Web.Models.Mapping; namespace Web.Models { public partial class mvc_ceshi1Context : DbContext { static mvc_ceshi1Context() { Database.SetInitializer<mvc_ceshi1Context>(null); } public mvc_ceshi1Context() : base("Name=mvc_ceshi1Context") { } public DbSet<admin> admins { get; set; } public DbSet<news> news { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Configurations.Add(new adminMap()); modelBuilder.Configurations.Add(new newsMap()); } } }
web.config也會生成鏈接字元串
4、新建類庫註意事項
1. 如果是新建的類庫需先引用Entity Framework.dll,不然如圖異常
2. 鏈接資料庫的時候沒有在“高級設置”中設置“安全連接”,如圖異常
異常圖(參數錯誤。(異常來自HRESULT:0x80070057(E_INVALIDARG))):
MSDN:https://msdn.microsoft.com/zh-CN/data/jj593170