将POCO或EF对象传递给Web项目?

时间:2012-10-25 00:28:27

标签: asp.net-mvc asp.net-mvc-3 entity-framework poco data-access-layer

假设我有一个包含两个项目的Visual Studio解决方案:一个Web项目和一个数据项目。

将数据项目中的EF对象传递给Web项目是否真的重要,或者我是否需要在数据项目中明确定义POCO以传递给Web项目?

在我看来,需要创建POCO而不是简单地使用EF对象增加了另一件需要做的事情......我并不特别看到目的。

2 个答案:

答案 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