我有一個自我指涉的模型類:功能NHibernate - 「未能懶洋洋地初始化集合」 - 查詢一個集合
public class Word
{
public virtual int Id { get; set; }
public virtual string Text { get; set; }
public virtual IList<Word> Synonyms { get; set; }
public virtual int Extra { get; set; }
}
我想查詢一個單詞的所有同義詞,其中超1並返回JSON格式的單詞列表在我的MVC 3應用程序:
[HttpPost]
public JsonResult Synonyms(string wordText)
{
using (var session = ...)
{
using (var tx = session.BeginTransaction())
{
var word = session.QueryOver<Word>()
.Where(w => w.Text == wordText)
.SingleOrDefault();
var results = new SynonymsResults()
{
Words = word.Synonyms
.Where(x => x.Extra == 1)
.Select(x => x.Text)
};
return Json(results);
}
}
}
它未能懶洋洋地初始化集合我得到一個錯誤。我不知道爲什麼,因爲我仍然在這裏的同一個會議,甚至使用交易。
謝謝Darin!只有一個後續問題:急於加載列表會導致列表中的所有項目也急切加載?例如,將word.Synonyms.First()。同義詞加載以及?對我來說,這看起來像是一個潛在的陷阱,因爲如果單詞連接在一起,數據庫最終可能會提取大量數據。 – 2011-04-30 05:44:12