有人可以告诉我“DbContext”和“DbSet”的预期(最佳实践)使用,其中数据消费者不应该依赖任何 EF(100% POCO)。虽然我找到的所有示例都解释了如何为底层数据源创建 POCO 类(通常对应于 RDBMS 表),但它们仍然向外界公开“DbContext”和“DbSet”(包括 MSFT 自己的关于如何进行数据绑定的示例与这些课程)。这似乎破坏或(严重地)淡化了使用 POCO 的好处。IOW,客户端仍然绑定到 EF,而不是创建一些在内部使用 EF 的数据存储项目的更清洁(恕我直言)方法,但仅向其用户公开 POCO。为什么 EF 上的所有文章似乎都忽略了这一点(我是否遗漏了什么)。谢谢。
1 回答
You would usually create a service layer (based on the Repository pattern for example) that makes use of DbContext. Its role is to mediate between the database and the application/client. It will accept POCOs from the client and return POCOs to the client. That way, the client knows about the repository, but it doesn't know anything about DbContext.
Some more reading for you:
http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/20/using-repository-pattern-with-entity-framework.aspx http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx