第三篇:Entity Framework CodeFirst & Model 映射 续篇 EntityFramework Power Tools 工具使用

     上一篇 第二篇:Entity Framework CodeFirst & Model 映射 主要介绍以Fluent API来实做EntityFramework CodeFirst,获得了你们一些支持,其中就有一位同窗就提出。熟悉了EntityFramework CodeFirst 原理,就能够用微软的工具来生产代码。是的,今天就来说一下,由微软EntityFramework小组开发的为EntityFramework CodeFirst Visual Studio小插件 “Entity Framework Power Tools”.html

     Entity Framework Power Tools 如今Bate4 版,估计也不会更新,由于如今紧锣密鼓的 开发Entity Framework 7。不过没有关系,Bate4 已经很稳定了,很可以解决Fluent API 繁琐的Model,Mapping 建立的工做。是一款很不错生产力工具,下面就听我慢慢的讲怎么用咯。数据库

  一. Entity Framework Power Tools Bate4 安装服务器

 1. 打开Visual Studio 2013 ,选择 工具 菜单,再选择 扩展和更新。app

 

2. 选择左边菜单的联机——在右上的搜索栏中输入 power tool ,在搜索结果中找到,Entity Framework Power Tools Bate4 下载安装,而后重启。ide

若是家里网速不行,搜索 转了半天 也不出来的话,我这里也提供独立安装包 下载 :http://files.cnblogs.com/files/davidzhou/EFPowerTools.zip 解压安装便可。工具

二. Entity Framework Power Tools 的使用ui

1. 从新打开 Visual Studio 2013 ,新建 “EntityFrameworkPowerToolsSample” 解决方案,而后添加“EntityFrameworkPowerTools.Models” 类库项目。this

2. 右击 “EntityFrameworkPowerTools.Models” 类库项目,会多出来一个“Entity Framework” 菜单spa

选择 “Entity Framework” 菜单下的“Reverse Engineer Code First” 选项,会弹出 数据库 链接属性界面,配置你要链接的数据库服务器,数据库。插件

我这里配置的是,我本机的 “EntityFrameworkSample” 数据库。

点击 “肯定” 不出意外就会产生Entity Framework CodeFirst 相关的代码。若是没有安装Entity Framework,在生成以前会自动给安装。

3. 生成代码以下

    Sample_Order (数据模型)

using System; using System.Collections.Generic; namespace EntityFrameworkPowerTools.Models.Models { public partial class Sample_Order { public System.Guid OrderGuid { get; set; } public string OrderNo { get; set; } public string OrderCreator { get; set; } public System.DateTime OrderDateTime { get; set; } public string OrderStatus { get; set; } public string Description { get; set; } public string Creator { get; set; } public System.DateTime CreateDateTime { get; set; } public string LastModifier { get; set; } public Nullable<System.DateTime> LastModifiedDateTime { get; set; } } }

  Sample_OrderMap (映射配置)

using System.Data.Entity.ModelConfiguration; namespace EntityFrameworkPowerTools.Models.Models.Mapping { public class Sample_OrderMap : EntityTypeConfiguration<Sample_Order> { public Sample_OrderMap() { // Primary Key
            this.HasKey(t => t.OrderGuid); // Properties
            this.Property(t => t.OrderNo) .IsRequired() .HasMaxLength(30); this.Property(t => t.OrderCreator) .IsRequired() .HasMaxLength(20); this.Property(t => t.OrderStatus) .IsRequired() .HasMaxLength(30); this.Property(t => t.Description) .HasMaxLength(1000); this.Property(t => t.Creator) .IsRequired() .HasMaxLength(20); this.Property(t => t.LastModifier) .HasMaxLength(20); // Table & Column Mappings
            this.ToTable("Sample_Order"); this.Property(t => t.OrderGuid).HasColumnName("OrderGuid"); this.Property(t => t.OrderNo).HasColumnName("OrderNo"); this.Property(t => t.OrderCreator).HasColumnName("OrderCreator"); this.Property(t => t.OrderDateTime).HasColumnName("OrderDateTime"); this.Property(t => t.OrderStatus).HasColumnName("OrderStatus"); this.Property(t => t.Description).HasColumnName("Description"); this.Property(t => t.Creator).HasColumnName("Creator"); this.Property(t => t.CreateDateTime).HasColumnName("CreateDateTime"); this.Property(t => t.LastModifier).HasColumnName("LastModifier"); this.Property(t => t.LastModifiedDateTime).HasColumnName("LastModifiedDateTime"); } } }

 EntityFrameworkSampleContext (DbContext)

using System.Data.Entity; using System.Data.Entity.Infrastructure; using EntityFrameworkPowerTools.Models.Models.Mapping; namespace EntityFrameworkPowerTools.Models.Models { public partial class EntityFrameworkSampleContext : DbContext { static EntityFrameworkSampleContext() { Database.SetInitializer<EntityFrameworkSampleContext>(null); } public EntityFrameworkSampleContext() : base("Name=EntityFrameworkSampleContext") { } public DbSet<Sample_Order> Sample_Order { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Configurations.Add(new Sample_OrderMap()); } } }

怎么样是否是代码,跟上一篇,代码差很少啊。只是文件的名称不一样而已,若是想调整项目结构,像上一篇同样,你能够把 EntityFramework Power Tools 生产代码拷贝过去,稍做调整就能够了。

固然EntityFramework Power Tools 还能够自定义模板,跟本身写T4模板同样,来实现本身想要规则。我这里就再也不作详细讲解了,你们本身摸索一下。

 而后本篇的源代码 : http://pan.baidu.com/s/1c2K4R8s

相关文章
相关标签/搜索