【发布时间】:2011-09-16 04:14:43
【问题描述】:
如何使用 NHibernate 的内置 linq 提供程序编写查询,包括急切加载和对细节的限制?例如
public class Library
{
public Library()
{
Books = new List<Book>();
}
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Book> Books { get; protected internal set; }
}
public class Book
{
public Book()
{
Pages = new List<Page>();
}
public virtual int Id { get; set; }
public virtual Library Library { get; set; }
public virtual string Title { get; set; }
}
以下查询显示了我需要但没有立即加载的内容
var query = from master in session.Query<Library>()
from detail in master.Books
where detail.Title == detailValue
select master;
以下查询不起作用...
var query = from master in session.Query<Library>()
// not allowed - causes Runtime error
.FetchMany(m => m.Details.Where(d => d.Value == detailValue))
select master;
非常感谢。
卡斯滕
【问题讨论】:
标签: linq nhibernate eager-loading