【发布时间】:2011-07-26 06:20:30
【问题描述】:
我真的有两个问题:
- Entity Framework Entity 对象和 ADO.NET C# POCO Entity 之间有什么区别。
- 我是否使用以下正确的存储库更新记录?
如果您关闭代码生成,然后添加 ADO.NET C# POCO Entity Generator,它会为您的 Entity Framework 4 对象提供一个很好的类表示。这个想法是(from here):
The POCO Template can be used to generate persistence ignorant entity types
from an Entity Data Model.
但是,这些对象具有对象之间的关系以及返回数据库的链接。例如,您可以从存储库中拉出一个,对其进行更改,然后在存储库或工作单元级别保存更改,并将内容保存到数据库中。
所以我的问题是原生实体框架对象与使用此工具生成的这些 POCO 有什么不同?
这是我在使用存储库更新记录时的想法。这是错的吗?
- 从存储库请求 POCO。
- 存储库从数据上下文加载记录,为找到的每条记录创建一个新 POCO,将值从 Entity Framework 对象复制到 POCO,并返回新 POCO 的集合。
- 在存储库之外对这些 POCO 进行更改,然后使用 Save(POCO) 之类的方式将 POCO 提交回存储库。
- 存储库从数据库加载匹配记录并将 POCO 属性复制到实体框架对象。
- 使用存储库对象或工作单元对象调用 Save。
【问题讨论】: