Entity Framework窍门

微软ADO.NET团队的程序经理Alex James最近发布了一系列关于Entity Framework窍门的博客文章。这些系列文章涵盖了EF3.5到EF4.0的内容,对于使用Entity Framework的构架师和开发人员来说,都能从中受益匪浅。

目前这个系列文章已经发表了24篇,讲到的内容有:

  1. 在Entity Framework中如何对Relationship(对象关系)进行排序。讲解了在对关系进行排序的时候遇到的问题,和作者的一个解答。如果你遇到类似问题,希望在这里可以找到答案。
  2. Entity Framework图书推荐。作者推荐了这三本书:ADO.NET Entity Framework、Programming Entity Framework和Professional ADO.NET 3.5 with LINQ and the Entity Framework 。
  3. 如何开始使用T4。T4就是文本模板转换工具包(Text Template Transformation Toolkit)。EF使用T4来帮助代码生成和模型构建,也被用于ASP.NET MVC和Dynamic Data中。作者在这篇文章中简单介绍了一些T4的用法。
  4. 概念结构定义语言(Conceptual Schema Definition Language,CSDL)的规则。CSDL用来描述EF的实体数据模型(EDM),由于EF文档中缺乏CSDL相关的内容,作者在这里给出了CSDL规则的学习资源。
  5. 如何限制从EF查询返回的类型。作者讲到如何只返回父类型而不要子类型,并给出了一种理想的写法(目前还不支持,他的团队估计正在努力实现)。
  6. 何时及如何使用提前加载(Eager Loading)。
  7. 如何在.NET 3.5 SP1中伪造外键属性。
  8. 如何使用LINQ to Entities编写“WHERE IN”风格的查询。
  9. 如何无需检索就可删除对象。
  10. 如何理解EF中“行话”。作者对EF中的一些专门术语进行了简要解释。
  11. 如何避免关系跨越(Relationship Span)。关于Relationship Span,作者在第10个窍门中做了解释,就是指EF为了保证某些功能的正常运行,而获取的多余外键值。
  12. 如何选择继承策略(Inheritance Strategy)。作者对TPH(每个层次关系一张表,Table Per Hierarchy),TPT(每个类型一张表,Table Per Type)和TPC(每个真实类一张表,Table Per Concrete Class)进行了一个比较。
  13. 如何用简单的方式附加Entity对象。作者讲解了分别在.NET 4.0和.NET 3.5 SP1中附加Entity对象的方式,.NET 4.0相对.NET 3.5 SP1来说非常的简单。
  14. 如何缓存EF的引用数据(Reference Data)。
  15. 如何避免加载不需要的属性。
  16. 如何在.NET 3.5中模仿.NET 4的ObjectSet<T>。
  17. 如何使用AttachAsModified实现一步更新。作者封装了一个名为AttachAsModified的扩展方法,把上述的一些窍门进行了融合。
  18. 如何决定你的ObjectContext的生存期。
  19. 如何在EF中使用乐观并发(Optimistic Concurrency )。作者提到只要把某个实体属性的Concurrency Mode设置为Fixed就可,最重要的是讲解了如何处理乐观并发异常。
  20. 如何处理固定长度的键。
  21. 如何在EF 4.0中使用Single()运算符。
  22. 如何让Include方法真正地“包含”。作者讲到在提前加载的时候,如何让Include方法真正地起到“包含”的作用。
  23. 如何在EF 4.0中伪造Enums。由于Enums已经不存在于EF4中了,所以作者给出了一种解决方法。
  24. 如何从一个Entity对象中得到ObjectContext。

这个系列文章,作者还在持续更新中,大家可以经常访问他的博客来进一步获取新内容。

另外值得一提的是,Alex James在进入微软之前独立开发了Base4.NET这个与EF有异曲同工之妙的开源框架,和大家分享了他超过10年的编程经验。当时让很多人都很振奋和期待。虽然他已经停止开发这个组件,但相信他的很多思想已经带入了EF中。

你可能感兴趣的:(Entity Framework窍门)