我正在使用Fluent-NHibernate来管理所有数据持久层,我总体上非常高兴(并感谢NHibernate社区)。我计划继续使用OR映射器。我已经围绕正在映射的POCO开发了一个API。缺点是UI开发人员可以获取和设置所有属性;我真正想要的是隐藏非中间层开发的属性,只显示提供的API方法来执行操作。
有没有人有这个好策略?
过于简单的例子:
member.FName = "Julian"; /// Don't do this because it avoids the my checking
member.LName = "King";
member.setName("Julian", "King"); /// Yes - this will throw an error if this person already exist
答案 0 :(得分:1)
CheckList
或更好地使用值对象(请参阅DDD中值对象的定义)
private string _fName;
public string FName
{
get { return _fName;}
}
private string _lName;
public string LName
{
get { return _lName;}
}
public void SetName(string fName, string lName){
// check for nulls here and or validate pre-conditions
_fName = fName;
_ lName = lName;
// check for post conditions here
}