gpt4 book ai didi

c# - Include 中使用的 Lambda 表达式无效

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

我的目标是订购一些数据回来。我喜欢 lambda 表达式,但它们让我失望。下面的代码出现了一个关于未将 lambda 放入包含中的奇妙错误。

public async Task<Header> GetHeader(int HeaderId)
{
var header = await _context.Headers
.Include(location => location.HeaderLocation)
.Include(details => details.Details.OrderBy(x => x.FieldName).OrderBy(y => y.LineVersion).ToList())
.Where(p => p.HeaderId == HeaderId).FirstOrDefaultAsync();
return header;
}

标题有详细信息,详细信息需要按属性“FieldName”排序,然后按属性“LineVersion”排序。我得到的错误:

Include 中使用的 Lambda 表达式无效。

经过一番挖掘,我找到了几种绕过 lambda 的方法,但我没有运气得到一个有 OrderBy 的例子,而且我的大脑目前正在让我失望,我很想得到一点启发得到这个工作。

顺便说一句:代码在没有 OrderBy 时工作正常,只是细节可能不会总是按照我需要的顺序返回。

在此先感谢您的帮助
布拉德

最佳答案

除了我看到的其他建议之外,我还使用了原始帖子评论中的链接,并在那里得到了很好的答案。我测试了它,它就像一个魅力。这是我最终的结果:

public async Task<PermitHeader> GetPermit(int HeaderId)
{
var header = await _context.Headers
.Include(location => location.Location)
.Where(p => p.HeaderId == HeaderId).FirstOrDefaultAsync();
var details = await _context.Details
.OrderBy(ob => ob.FieldName)
.OrderBy(ob => ob.LineVersion)
.Where(d => d.HeaderHeaderId == HeaderId).ToListAsync();
header.Details = Details;
return header;
}

感谢您的快速回复!

关于c# - Include 中使用的 Lambda 表达式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59062473/

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