我想知道是否有人可以给出POCO(普通旧CLR对象)的可靠解释(例子)。我发现了一个brief explanation on Wikipedia,但它确实没有给出可靠的解释。
答案 0 :(得分:45)
我更愿意将它们称为持久性无知对象,而不是将它们称为 POCO 。
因为他们的工作很简单,所以他们不需要关心他们的用途或使用方式。
就我个人而言,我认为POCO只是另一个流行语(如Web 2.0 - 不要让我开始),因为它具有简单属性的公共类。
我一直在使用这些类型的对象来保持业务状态。
当你开始使用存储库模式,ORM和依赖注入等事情时,真正看到POCO的主要好处。
换句话说 - 您可以创建一个ORM(比如说EF)从某处(db,web服务等)中提取数据,然后 project 这些数据进入物体(POCO)。
这些对象可以在应用程序堆栈中向下传递到服务层,然后传递到Web层。
然后,如果有一天你决定切换到nHibernate,你根本不需要触摸你的POCO,唯一需要改变的是ORM。
因此,术语“持久性无知” - 他们并不关心它们的用途或使用方式。
总而言之,专业人士:
希望有所帮助。
答案 1 :(得分:3)
您需要提供更多详细信息,例如您计划使用POCO的上下文。但基本思想是,您将创建仅包含必要数据/代码的简单对象。这些对象不包含任何“行李”,例如注释,额外方法,基类等,否则可能需要(例如)框架。
答案 2 :(得分:-2)
POCO的例子:
class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
}