在使用 OR 映射器时隐藏属性资源库

本文关键字:隐藏 属性 资源库 映射 OR | 更新日期: 2023-09-27 17:56:08

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

在使用 OR 映射器时隐藏属性资源库

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
}

或者最好使用值对象(请参阅 DDD 中值对象的定义)

public void SetName(Name name){
      _fName = name.FirstName;
      _ lName = name.LastName;
    }