Entity Framework Code First使用者的福音 --- EF Power Tool使用記之一
好像蠻長時間沒有新文章帶給大家了。前幾天出差再加上忙著公司里的活兒,幾乎都沒時間上博客園了。今天正好有些時間,為大家簡單介紹EF產(chǎn)品組新發(fā)布的一個牛逼的小工具——EF
Power Tool(翻譯的話,好像就是牛逼工具哦
?)
下次會為大家深入解析這個小工具。 最先看到這個工具是在EF產(chǎn)品組最新的博客文章上,http://blogs.msdn.com/b/adonet/archive/2011/05/18/ef-power-tools-ctp1-released.aspx。粗略讀了下,感覺很酷,馬上下載下來試了試,果然很酷,http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d/。
大致來說,這個工具有這樣幾個功能:
1) 按照現(xiàn)有數(shù)據(jù)庫結(jié)構(gòu),生成Code First POCO class、DbContext class和相應(yīng)的mapping class。
2) 以designer模式或XML模式查看POCO class對應(yīng)的Entity Data Model (edmx) 。
3) 查看Entity Data Model所對應(yīng)的DDL。
4) 生成EF Generated View提高EF性能。
一起來體驗下。當然請先下載安裝這個小工具,安裝前必須先安裝EF4.1。
首先在數(shù)據(jù)庫端創(chuàng)建兩個表Parent和Child,存在一對多的關(guān)系。

創(chuàng)建一個C#項目,并右擊項目名。在彈出的菜單中選擇Entity Framework –> Reverse Engineer Code
First。

接著需要選擇相應(yīng)的數(shù)據(jù)庫連接:

接著,神奇的一幕發(fā)生了。小工具幫助我們生成了不少class:

相應(yīng)的POCO class, DbContext class和mapping fluent API都自動生成了,真是太輕松了。這樣大大方便了我們學(xué)習(xí)EF
4.1的相關(guān)fluent API。
public class Parent { public Parent() { this.Children = new List<Child>(); } public int ParentID { get; set; } public string Name { get; set; } public virtual ICollection<Child> Children { get; set; } }
public class EFToolContext : DbContext { static EFToolContext() { Database.SetInitializer<EFToolContext>(null); } public DbSet<Child> Children { get; set; } public DbSet<Parent> Parents { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); modelBuilder.Configurations.Add(new ChildMap()); modelBuilder.Configurations.Add(new ParentMap()); } }
public class ParentMap : EntityTypeConfiguration<Parent> { public ParentMap() { // Primary Key this.HasKey(t => t.ParentID); // Properties this.Property(t => t.ParentID) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); this.Property(t => t.Name) .IsRequired() .HasMaxLength(50); // Table & Column Mappings this.ToTable("Parent"); this.Property(t => t.ParentID).HasColumnName("ParentID"); this.Property(t => t.Name).HasColumnName("Name"); } }
擁有了這些class之后,我們還可以通過小工具來查看相應(yīng)的Entity Data Model以及對應(yīng)的DDL。更牛的是,小工具還可以為我們生產(chǎn)EF
Generated View的代碼,以提高我們使用EF和Code First時的性能。

值得一提的是,這里的Entity Data Model,Entity Data Model XML和Entity Data Model
DDL都是只讀的,它們被生成在C:\Users\[username]\AppData\Local\Temp\文件夾下。
在選擇Optimize Entity Data Model之后,小工具會為你的項目增加一個.View.cs文件,期中就包括了Generated
Views的代碼。有關(guān)Generated View的更詳細信息,請參見:http://msdn.microsoft.com/en-us/library/bb896240.aspx
。
是不是覺得這個工具很酷呢?趕緊下載吧! http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d/
PS1: 順便為大家奉上新鮮出爐的微軟一站式示例代碼庫中文宣傳視頻,絕對給力,我翻譯的字幕喲
:

浙公網(wǎng)安備 33010602011771號