这篇question中的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吗?
由于
答案 0 :(得分:0)
是的,第二个是有效的POCO,因为它没有使用特定于持久性的细节。 POCO的重点在于某个对象并不依赖于db访问库。例如,如果您使用EF特定属性装饰 Person ,则必须在您使用该类的任何地方引用EF。