看看这个例子代码:可以从NHibernate实体的构造函数中调用虚拟属性吗?
public class Comment
{
private Comment()
{ }
public Comment(string text, DateTime creationDate, string authorEmail)
{
Text = text;
CreationDate = creationDate;
AuthorEmail = authorEmail;
}
public virtual string Text { get; private set; }
public virtual DateTime CreationDate { get; set; }
public virtual string AuthorEmail { get; private set; }
}
我知道这是被认为不好的做法,调用虚成员函数从构造,然而在NHibernate的,我需要的属性是虚拟的,以支持延迟加载。在这种情况下它被认为是可以的吗?
我觉得你的问题应该得到更多的注意,我想添加此参考:http://stackoverflow.com/tw/search?q=nhibernate+virtual+constructor 我认为,添加一个Initialize()方法或参数较少的构造函数正在改变你的设计,以适应框架 - 在我看来这是一个不好的做法;也许你希望你的对象在任何时候都是有效的(我认为你应该)... Initialize()方法/参数少的构造函数允许构造没有它们需要的对象。 – W3Max 2009-08-30 19:48:25