我可以在数据库范围之外使用Entity Framework对象吗?

时间:2011-12-22 11:32:40

标签: entity-framework ado.net

我正在设计一个数据库,用于存储产品和属于它们的一些属性。属性可以从父产品继承到子产品。例如:

ProductA   ---> PropertyA, PropertyB
|-ProductB ---> PropertyC

在此示例中,除PropertyC外,ProductB还应具有PropertyA和PropertyB。为了获得某个产品的所有属性,我需要遍历所有父项并在列表中累积所有属性。但是,Property类本身是一个数据库实体,所以我可以使用它来定义普通对象(即从数据库中分离)而不影响数据库内容,即创建,修改,删除实例作为普通的C#对象吗?

1 个答案:

答案 0 :(得分:3)

是的,你可以。 Entity Framework 4.0以后支持所谓的POCO实体(Plain Old CLR Object)。它们可以完全独立于数据库关注点存在,并且在适当的时候可以将它们附加到实体框架上下文的实例,以便持久化到数据库。

同样,如果您选择在域模型中操作它们,使得您不希望它们再次持久化,则可以从已从数据库中通过相同上下文检索它们的上下文中分离实体。

取决于您是否执行真正的Code First或Database First将确定用于创建这些实体的开发工作流程。