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