我为啥要使用 POCO?

Posted

技术标签:

【中文标题】我为啥要使用 POCO?【英文标题】:Why would I want to use POCO's?我为什么要使用 POCO? 【发布时间】:2010-08-06 05:45:52 【问题描述】:

我目前使用实体框架设计器来生成我的持久性对象,并且我还为 ASp.NET MVC 视图使用 POCO 视图模型。

我已经阅读并听过很多人谈论对 EF4 中的 POCO 以及一般 POCO 的良好支持,但我似乎无法弄清楚我会从使用它们中获得什么优势,如果有的话.

在我们的应用程序中,我们将使用 SQL Server,因此我们不需要为不同的数据库如此分开。

我为什么要使用 POCO 而不是设计器生成的类?

【问题讨论】:

What are the 'big' advantages to have Poco with ORM? 的可能重复项 【参考方案1】:

POCO 为您的领域模型提供了更好的可扩展性/重用性,因为您不依赖于任何特定的 ORM 框架。

【讨论】:

【参考方案2】:

在这里回答:What are the 'big' advantages to have Poco with ORM?

【讨论】:

我将此标记为答案,因为我在创建问题时没有看到它。【参考方案3】:
    单元测试更容易 我发现当您有许多实体(100 多个)使用设计器时会很痛苦,而且 POCO 对象很容易创建和维护。

【讨论】:

【参考方案4】:

使用 POCO,您可以“代码优先”

http://weblogs.asp.net/scottgu/archive/2010/08/03/using-ef-code-first-with-an-existing-database.aspx

【讨论】:

【参考方案5】:

+1 对于 POCOS,您可以先编码。事实上,您甚至可以在编写第一行数据访问代码之前创建和测试整个应用程序。应该是这样,是SRP的完美应用。您的域对象不应该知道或关心它们是如何被持久化的。

【讨论】:

以上是关于我为啥要使用 POCO?的主要内容,如果未能解决你的问题,请参考以下文章

VS2015编译Poco+openssl,使用Poco发送HTTPS请求

在 C# 中,如何使用大量精美的标记将 POCO 序列化为 XML?

替代手动 ADO.NET POCO 映射?

理解POCO

poco 库的 Boost_USE_STATIC_LIBS 等价物是啥?

使用 POCO 模板获取实体框架的连接字符串