zoukankan      html  css  js  c++  java
  • Entity Framework Code First使用者的福音 --- EF Power Tool使用记之一

    转:http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html

     

    好像蛮长时间没有新文章带给大家了。前几天出差再加上忙着公司里的活儿,几乎都没时间上博客园了。今天正好有些时间,为大家简单介绍EF产品组新发布的一个牛逼的小工具——EF
    Power Tool(翻译的话,好像就是牛逼工具哦?)
    下次会为大家深入解析这个小工具。  最先看到这个工具是在EF产品组最新的博客文章上,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) 按照现有数据库结构,生成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性能。

    一起来体验下。当然请先下载安装这个小工具,安装前必须先安装EF4.1

    首先在数据库端创建两个表Parent和Child,存在一对多的关系。

    创建一个C#项目,并右击项目名。在弹出的菜单中选择Entity Framework –> Reverse Engineer Code
    First。

    接着需要选择相应的数据库连接:

    接着,神奇的一幕发生了。小工具帮助我们生成了不少class:

    相应的POCO class, DbContext class和mapping fluent API都自动生成了,真是太轻松了。这样大大方便了我们学习EF
    4.1的相关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之后,我们还可以通过小工具来查看相应的Entity Data Model以及对应的DDL。更牛的是,小工具还可以为我们生产EF
    Generated View的代码,以提高我们使用EF和Code First时的性能。

    值得一提的是,这里的Entity Data Model,Entity Data Model XML和Entity Data Model
    DDL都是只读的,它们被生成在C:Users[username]AppDataLocalTemp文件夹下。

    在选择Optimize Entity Data Model之后,小工具会为你的项目增加一个.View.cs文件,期中就包括了Generated
    Views的代码。有关Generated View的更详细信息,请参见:http://msdn.microsoft.com/en-us/library/bb896240.aspx

    是不是觉得这个工具很酷呢?赶紧下载吧! http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d/

    PS1: 顺便为大家奉上新鲜出炉的微软一站式示例代码库中文宣传视频,绝对给力,我翻译的字幕哟

    PS2: 为大家带来另一个超级酷的小工具:MSDN论坛桌面小工具,绝对给力!欢迎使用!(我也出了不少力啊

    也欢迎到MSDN中文论坛ADO.NET与LINQ论坛来提问EF的问题啊,可以试试直接报我的名字Michael Sun,哈哈!

    如需转发请注明原文出处,谢谢: http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html

  • 相关阅读:
    Oracle Core 学习笔记二 Transactions 和 Consistency 说明
    Oracle AUTO_SPACE_ADVISOR_JOB 说明
    Windows 下 ftp 上传文件 脚本
    Oracle 11g 中 Direct path reads 特性 说明
    Linux 使用 wget 下载 Oracle 软件说明
    Oracle 10g read by other session 等待 说明
    Oracle 11g RAC INS06006 Passwordless SSH connectivity not set up between the following node(s) 解决方法
    SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
    Oracle RAC root.sh 报错 Timed out waiting for the CRS stack to start 解决方法
    Oracle RESETLOGS 和 NORESETLOGS 区别说明
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/5606945.html
Copyright © 2011-2022 走看看