下次会为大家深入解析这个小工具。  最先看到这个工具是在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/

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

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

最新文章

  1. Sunny-ngrok 解决外网访问内网问题
  2. The JSP specification requires that an attribute name is preceded by whitespace
  3. 【python游戏编程之旅】第八篇---pygame游戏开发常用数据结构
  4. memcache 缓存的批量删除方案(转)
  5. RMAN_Oracle RMAN的常用Configure配置
  6. 【转】获取Sprite的实际Rect
  7. 【Uvalive 2531】 The K-League (最大流-类似公平分配问题)
  8. 谈论Hibernate级联删除——JPA根据Hibernate实现许多级联删除CascadeType.DELETE_ORPHAN
  9. jquery跨域请求数据
  10. RedHat9.0下载地址
  11. CORBA技术及实例
  12. Struts2学习笔记(五)——Action访问Servlet API
  13. TensorFlow常用的函数
  14. python新式类与旧式类
  15. 练习 map集合被使用是因为具备映射关系 &quot;进度班&quot; &quot;01&quot; &quot;张三&quot; &quot;进度班&quot; &quot;02&quot; &quot;李四&quot; &quot;J1701&quot; &quot;01&quot; &quot;王五&quot; &quot;J1701&quot; &quot;02&quot; &quot;王二&quot; 此信息中,我们要怎样把上述信息装入集合中, 根据班级信息的到所有的所有信
  16. Tomcat下载以及安装、eclipse工具配置tomcat9的具体步骤
  17. centos环境gcc版本升级
  18. linux下PHP手动添加扩展库
  19. 【计算机网络基础】TCP/IP、HTTP、Socket的概念
  20. 坐标转换convertRect

热门文章

  1. Windows下安装Oracle 11g 2版 64位,从下载,安装,测试连接成功~!
  2. angular.js,IE7,8,9兼容性的处理
  3. AngularJs 初级入门 学习笔记
  4. h5图片展示和ajax上传
  5. 解压速度更快, Zstandard 1.4.1 发布
  6. composer入门教程
  7. nginx搭建及加固
  8. 关于log4j的配置文件
  9. Javascript引擎
  10. Jquery实现div左右重复来回走动