gpt4 book ai didi

nhibernate - 在 NHibernate 3 中使用 Linq 时急切加载

转载 作者:行者123 更新时间:2023-12-04 06:50:06 24 4
gpt4 key购买 nike

我需要帮助在 NHibernate 3 主干版本中使用 Linq 进行热切加载。

我有这样的多对多关系:

public class Post
{
public int Id {get;set;}
public IList<Tag> Tags { get;set;}
.
.
.
}

现在我在 Fluent NHibernate 中有以下映射
public class PostMap:ClassMap<Post>
{
public PostMap()
{
Table("Posts");
Id(x => x.Id);
.
.
HasManyToMany(x => x.Tags)
.Table("PostsTags")
.ParentKeyColumn("PostId")
.ChildKeyColumn("TagId")
.Not.LazyLoad(); // this is not working..
}
}

现在,在获取帖子时,我还需要标签来急切加载。我知道 Criteria API 和 HQL 是可能的,而 SetFetchMode 是我应该使用的。但是在使用 Linq 时有没有办法使用 SetFetchMode?

最佳答案

前段时间对此的支持进入了主干;语法是这样的

var query = session.Query<Post>().Where(bla bla).Fetch(p => p.Tags);

如果标签又具有其他关系,您可以执行以下操作:
var query = session.Query<Post>().Where(bla bla).Fetch(p => p.Tags).ThenFetch(t => t.SomethingElse);

关于nhibernate - 在 NHibernate 3 中使用 Linq 时急切加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com