Domain driven design POCO对象是否仅仅是;“执迷不悟”;还是别的什么?
本文中的RPM1984谈到POCO是“持久无知”对象。但他并没有说逻辑能容纳多少。例如:Domain driven design POCO对象是否仅仅是;“执迷不悟”;还是别的什么?,domain-driven-design,persistence,poco,object-persistence,Domain Driven Design,Persistence,Poco,Object Persistence,本文中的RPM1984谈到POCO是“持久无知”对象。但他并没有说逻辑能容纳多少。例如: class Person { public string FirstName { get; set; } } 或者这个: class Person { private string firstName = string.Empty; public string Firstname { get { return this.
class Person {
public string FirstName { get; set; }
}
或者这个:
class Person {
private string firstName = string.Empty;
public string Firstname {
get
{
return this.firstname;
}
set {
if (value.Length > 26)
{
throw new System.ComponentModel.DataAnnotations.ValidationException("Firstname is too long");
}
this.firstname = value;
}
}
}
两者都是“持久的igonrant”。第一个肯定是POCO类。但第二个是有效的POCO吗?它有一些逻辑,但可以毫无问题地持久化,其逻辑只不过是验证。这算是POCO吗
谢谢是的,第二个是有效的POCO,因为它没有使用特定于持久性的细节。POCOs的全部意义在于,某个对象不依赖于db访问库。例如,如果您要用EF特定属性装饰Person,则必须在使用该类的任何地方引用EF