根据我的阅读,POCO 类应该是持久性无知的,并且不应该包含对存储库的引用。
Q1.鉴于上述情况,我将如何填充 QuestionBlocks 集合?我读过 POCO 应该包含行为,这样你就不会以贫血模型结束,所以我有点困惑,如果没有坚持,应该如何做到这一点。如果是这样的话,那么您会在 POCO 中添加什么样的行为呢?
Ex:
public class Survey
{
public int SurveyId { get; set; }
public string Title { get; set; }
public int BrandId { get; set; }
public DateTime Created { get; set; }
public List<SurveyQuestionBlock> QuestionBlocks { get; set; }
[ResultColumn]
public string Name { get; set; }
/// <summary>
/// Constructor
/// </summary>
public Survey()
{
Created = DateTime.Now;
QuestionBlocks = new List<SurveyQuestionBlock>();
}
}
我想附加另一个观点: POCO 状态不依赖于任何框架的对象。 POJO 的 wiki 定义对我来说比 POCO 的定义更有意义:
- http://en.wikipedia.org/wiki/Plain_Old_Java_Object http://en.wikipedia.org/wiki/Plain_Old_Java_Object
套用 POJO 的 wiki 定义,我们可以说 POCO 对象可能不会被迫:
一、扩展预先指定的类:
public class MyClass : AnyFramework.ObjectBase {...
二.实现预先指定的接口
public class MyClass : AnyFramework.IHaveDependency {...
三.包含预先指定的属性
[AnyFramework.KeyAttribute]
public class MyClass {...
鉴于这种(几乎任何其他事情都是允许的)意思是关心对象状态。换句话说,如果对象将检查业务逻辑,正确.
但任何 POCO 对象都可以使用in一个框架。今天主要是负责持久化的ORM。所有应用程序层都使用 POCO 对象,而数据层负责加载和持久化(CRUD)。这主要是通过这些 POCO 对象的代理完成的。
因此,POCO 可以用作完整的业务对象,它可以照顾自己(检查集合项、属性的正确性......)。这使得它与DTO不同
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)