因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语造诣,所以纰漏百出,也请勿见笑,就当是鼓励! 有些小节空着是因为我写代码的时候,发现与书里的出入非常大,应该是ef版本问题,所以我暂且搁置(现在打算从此搁置,因为EF很快就出Core版本了)! 第9章 在N层结构的应用程序中使用EF 1.9-1 用Web Api更新单独分离的实体 2.9-2 用WCF更新单独…
第12章定制EF 在本章的小节里,定制实体对象和EF处理的一些功能.这些小节将涵盖很多”幕后”的事情,能让你的代码更加统一解决一些事情,比如用一个业务规则中心统一地为实体执行验证. 本章开始的小节,将演示如何在你的应用程序中当调用SaveChanges() 时,执行你自己的代码. 如果你想在你的应用程序里单独定制业务规则,本小节和有些小节非常有用. 在其它小节里,我们将演示如何跟踪数据库连接,如果自动报告集合的改变,如何实现级联删除,如何设定默认值,和如何与强类型的XML属性一起使用.所有这些定…
12-7. 设定默认值 问题 在把一个实体保存到数据库之前,设置该实体属性的默认值 解决方案 假设你有一个如Figure 12-9所示的表, 它保存采购订单(purchase order). 主键PurchaseOrderId是一个GUID,有订单创建时间,最后修改时间,和备注,而且备注列不再使用,设置成 “N/A”.因为不用该列,所以在实体里也没有对应的属性. 你想初始化PurchaseOrderId 列, 两个日期时间列, Paid列, 和 comments 列为默认值. 我们的模型如 Fi…
9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Frist实现数据访问管理. 本例,我们模拟一个N层场景,用单独的客户端(控制台应用)来调用单独的基于REST服务的Web网站(WEB API应用) . 注意:每层使用单独的Visual Studio 解决方案, 这样更方便配置.调试和模拟一个N层应用. 假设有一个如Figure 9-3所示的旅行社和预订…
9-4. Web API 的客户端实现修改跟踪 问题 我们想通过客户端更新实体类,调用基于REST的Web API 服务实现把一个对象图的插入.删除和修改等数据库操作.此外, 我们想通过EF6的Code First方式实现对数据的访问. 本例,我们模拟一个N层场景,用单独的控制台应用程序作为客户端,调用Web API服务(web api项目). 注:每个层用一个单独的解决方案,这样有助于调试和模拟N层应用. 解决方案 假设我们一个如Figure 9-4.所示模型 Figure 9-4. A 客户…
问题 你想用LINQ写一个搜索查询,能被转换成更有效率的SQL.另外,你想用EF的CodeFirst方式实现. 解决方案 假设你有如下Figure 13-6所示的模型 Figure 13-6. A simple model with a Reservation entity            首先,这个例子用EF的CodeFirst方式实现,在Listing 13-10,我们创建实体类Reservation Listing 13-10. The Reservation Entity Obje…
问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A model for a Customer, their CreditCards, and Transactions 首先本例通过EF的CodeFrist方式实现,代码Listing 13-23,我们创建Customer,CreditCard和Transaction实体类. Listing 13-23…
Chapter01. Getting Started with Entity Framework / 实体框架入门 1-1. A Brief Tour of the Entity Framework World / 简单浏览实体框架世界 goto1-2. Using Entity Framework / 使用实体框架 Chapter02. Entity Data Modeling Fundamentals / 实体数据建模基础 2-1. Creating a Simple Model2-2. C…
第九章 在N层结构的应用程序中使用EF 不是所有的应用都能完全地写入到一个单个的过程中(就是驻留在一个单一的物理层中),实际上,在当今不断发展的网络世界,大量的应用程序的结构包含经典的表现层,应用程,和数据层,并且它们可能分布在多台计算机上,被分布到一台单独的计算机上的应用程序的某个领域的逻辑层,并不过多地涉及代理服务器编码,序列化,和网络协议,应用程序可以跨越很多设备,从小到一个移动设备到大到一个包含企业所有账户信息的数据服务器. 幸运的是,EF可应用于WCF,WEB Api等诸如此类的多层框…
问题 不管你用DBFirst,ModelFirst或是CodeFirst的方式,你想用实体键获取一个单独的实体.在本例中,我们用CodeFirst的方式. 解决方案 假设你有一个模型表示一个Painting(绘画)类型的实体,如Figure 13-2所示: Figure 13-2. The Painting entity type in our model 在代码In Listing 13-2,我们创建实体类Painting. public class Painting { public str…