gpt4 book ai didi

Linq 查询错误

转载 作者:行者123 更新时间:2023-12-01 23:08:50 26 4
gpt4 key购买 nike

我正在使用以下 Linq 查询:

from p in People
where p.Name == "George Lucas"
select p.TitlesActedIn

其中 TitlesActedIn 是一个列表。 People 和 TitlesActedIn 是关联的

但我收到错误:

InvalidCastException: Unable to cast object of type 'System.Linq.Expressions.PropertyExpression' to type 'System.Data.Services.Client.ResourceExpression'.

请提出解决方案。

最佳答案

一个非常简单的方法:

var query = People
.Expand("TitlesActedIn")
.Where(p => p.Name == "George Lucas")
.First()
.TitlesActedIn.Select(t => t.ShortName);
query.Dump();

重要的是要注意,如果您传递的名称不存在,这将崩溃。 (First Operator 会抛出异常。您需要保证名称存在,或者分两步进行。


如果您想一步完成,归结为:(请注意返回的内容)

http://odata.netflix.com/catalog/People()?$filter=Name eq 'George Lucas'&$top=1&$expand=TitlesActedIn

您需要展开,否则它将在 .First() 之后退出评估,因为 TitlesActedIn 将为空。

它基本上翻译为选择 Person,包含(扩展)TitlesActedIn 关联,然后选择名称(客户端)

这样做的缺点是您要从 Titles 表中拉回所有内容(所有字段)。因此,对于与要返回的人员相关的每个标题(标题、年份、描述、短名称等)。

如果您在两个查询中执行此操作,则只能从 TitlesActedIn 关联中拉回“ShortName”。

关于Linq 查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746992/

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