public MyClass(int someUniqueID)
{
using(//Session logic)
{
var databaseVersionOfMyClass = session.CreateCriteria(/*criteria*/)
.UniqueResult<MyClass>();
//Load logic
}
}
上面的代码示例是我当前的方向,尽管我已经到了需要进行一些健全性检查的地步。
使用 NHibernate(我在这方面是绿色的),在类构造函数中从数据库实例化对象是常见的还是最佳实践?我相信的另一种选择是有一个从数据库返回对象的静态方法。
我还遇到了一个关于构造函数与工厂方法的相关问题,但是我不相信这个实现适合工厂方法。
要在上面添加一个额外的问题,如果在构造函数中实例化是可行的方法,我过去总是使用某种 Load() 方法。一个特定的私有方法可以将返回的 db 对象的属性与新类匹配,或者通过假设属性名称匹配的通用反射方法。我很好奇是否有另一种方法可以“加载”我错过的对象。