好像蛮长时间没有新文章带给大家了。前几天出差再加上忙着公司里的活儿,几乎都没时间上博客园了。今天正好有些时间,为大家简单介绍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]\AppData\Local\Temp\文件夹下。

在选择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/

Entity Framework Code First使用者的福音 --- EF Power Tool使用记之一(转载)的更多相关文章

  1. Entity Framework Code First使用者的福音 --- EF Power Tool使用记之二(问题探究)

    转:http://www.cnblogs.com/LingzhiSun/archive/2011/06/13/EFPowerTool_2.html   上次为大家介绍EF Power Tool之后,不 ...

  2. Entity Framework Code First使用者的福音 --- EF Power Tool使用记之一

    下次会为大家深入解析这个小工具.  最先看到这个工具是在EF产品组最新的博客文章上,http://blogs.msdn.com/b/adonet/archive/2011/05/18/ef-power ...

  3. Entity Framework Code First ---EF Power Tool MySql

    关于如何使用EF Power Tool的介绍请看 http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html, 这里 ...

  4. Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题

    关于如何使用EF Power Tool的介绍请看 http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html, 这里 ...

  5. How to: Use the Entity Framework Code First in XAF 如何:在 XAF 中使用EF CodeFirst

    This topic demonstrates how to create a simple XAF application with a business model in a DbContext ...

  6. Entity Framework Code First学习系列目录

    Entity Framework Code First学习系列说明:开发环境为Visual Studio 2010 + Entity Framework 5.0+MS SQL Server 2012, ...

  7. Entity Framework Code First (三)Data Annotations

    Entity Framework Code First 利用一种被称为约定(Conventions)优于配置(Configuration)的编程模式允许你使用自己的 domain classes 来表 ...

  8. Entity Framework Code First (二)Custom Conventions

    ---------------------------------------------------------------------------------------------------- ...

  9. Entity Framework Code First学习系列

    Entity Framework Code First学习系列目录 Entity Framework Code First学习系列说明:开发环境为Visual Studio 2010 + Entity ...

随机推荐

  1. [转]MySQL更改用户密码

    grant all privilegeson *.* to root@'localhost'identified by 'root'with grant option; grant all privi ...

  2. zabbix3.0的安装

    Lamp环境搭建:  #zabbix的版本,3.0之后的要求php版本5.4以上才支持 mysql需要对大小写敏感 编译安装PHP 下载 :wget http://mirrors.sohu.com/p ...

  3. thinkphp去重统计数据sql

    DISTINCT 方法用于返回唯一不同的值 官方文档给出的示例: $Model->distinct(true)->field('userName')->select(); 解析的SQ ...

  4. 修改activityMQ的登录账与密码

    登录下管理员页面,ip根据实际的来 URL : http://127.0.0.1:8161/admin/ 默认账户密码都是admin 账户密码修改在conf文件夹下的jetty-realm.prope ...

  5. 关于DeploymentConfig的思考

    为什么是deploymentconfig而不是Kubernetes的deployment 在new-app的时候openshift直接创建了一个deploymentconfig并部署成rc,开始并不理 ...

  6. WCF和Socket

    WCF的全称是:Windows Communication Foundation.它是建立在Web Service架构上的一个全新的通信平台.它使用相同的基础结构和 API 来创建应用程序,这些应用程 ...

  7. 本地环境 XAMPP+phpStorm+XDebug+chrome配置和断点调试

    不明白phpStorm+XAMPP+chrome组合的phpStorm配置XDebug的断点调试,很多种网页办法都看过了,可用,但没达预期.QQ群问,一个大牛很奇怪我都配置了怎么还不正确,很干脆地说远 ...

  8. unity statics window fps原理

    https://forum.unity.com/threads/is-unity-fps-count-wrong-or-am-i-missing-something.150139/ 看了下这个fps ...

  9. Spring MVC入门Demo

    1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为springmvcdemo的Maven工程. 2  ...

  10. Javascript code for soft keyboard

    <style>     BODY {     SCROLLBAR-FACE-COLOR: #f0f0f6; FONT-SIZE: 9pt; BACKGROUND-ATTACHMENT: f ...