我有一个自我指涉的模型类:功能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