Domain driven design 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.

本文中的RPM1984谈到POCO是“持久无知”对象。但他并没有说逻辑能容纳多少。例如:

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