在使用 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
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;
}