使用OR Mapper时隐藏属性设置器

时间:2016-07-08 02:08:39

标签: c# asp.net .net nhibernate fluent-nhibernate

我正在使用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 

1 个答案:

答案 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

}