假设我有一个包含两个项目的Visual Studio解决方案:一个Web项目和一个数据项目。
将数据项目中的EF对象传递给Web项目是否真的重要,或者我是否需要在数据项目中明确定义POCO以传递给Web项目?
在我看来,需要创建POCO而不是简单地使用EF对象增加了另一件需要做的事情......我并不特别看到目的。
答案 0 :(得分:1)
如果您正在使用Entity Framework 4,则EF对象是POCO对象,因此应该在模型与EF对象匹配的任何情况下使用(CRUD操作是典型的)。但是,很可能会出现这样的情况,即标准POCO对象没有封装View Model所需的所有字段(我使用的典型字段是您有两个密码字段的帐户页面),因此您需要为页面创建模型,然后将数据传递到EF POCO对象。
因此,如果您正在使用DbContext(为您创建POCO对象),则没有理由不使用这些对象。
答案 1 :(得分:0)
将EF对象直接传递给Web项目并不是一个好习惯。由于EF对象中发生的状态变化可以直接反映在数据库上。因此,您应该为Web项目明确定义POC对象。(我们可以将其称为Data Model
或简称为Model
。用于从View
检索数据的POC对象可以被称为View Model
。在适当的情况下,您可以使用与Data Model
相同的POCO类以及View Model
)