c# - 如何从其父级返回集合的第一个对象

标签 c# linq nhibernate linq-to-nhibernate

如果可能,我希望通过单个数据库查询执行以下操作。

public class Location
{
    public string URL {get;set;}
    public IList<Page> Pages {get;set;}
}

Page firstPage = Session.Linq<Location>()
                .Where(location => location.URL == "some-location-url")
                .Select(location => location.Pages).FirstOrDefault();

我的目标是根据当前位置 url,返回其 pages 集合中的第一个 Page 对象。

我现在已经尝试了很多不同的方法,它们似乎都执行了很多查询来获取所需的 Page 对象。

感谢任何帮助!

忍者戴夫

最佳答案

这可能是您要寻找的:

Page firstPage = Session.Linq<Page>()
.OrderBy(page => page.Index)
.FirstOrDefault(page=> page.Location.URL == "some-location-url");

我假设页面有一个 Location 属性,该属性与它所属的 Location 相关,而 .Index 将是您要用于订购的属性。

关于c# - 如何从其父级返回集合的第一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/541415/

相关文章:

c# - 带外键的 Fluent nHibernate "not-null property references a null or transient value"

c# - 使用辅助方法创建动态 lambda

c# - 为什么我的图像会自动重新缩放?

c# - 有没有办法使用 "using"但保持文件打开?

c# - 可以在我的代码中硬编码复杂的数学逻辑吗?

c# - Linq 和字典的范围

c# - 通过 Linq 对字符串进行排序

c# - 如何创建不同数量的查询?

c# - 动态创建排序 Lambda 表达式

nhibernate - 禁用 NHibernate 日志记录