看看這個例子代碼:可以從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