gpt4 book ai didi

c# - 返回包含 2 个子类的 IQueryable

转载 作者:太空狗 更新时间:2023-10-30 00:22:37 34 4
gpt4 key购买 nike

你能返回由两个或多个不同子类组成的 IQueryable 吗?这是我试图表明我的意思的尝试。它抛出错误:

System.NotSupportedException:输入Union 或 Concat 已分配成员顺序不同..

var a = from oi in db.OrderItems
where oi.OrderID == ID
&& oi.ListingID != null
select new OrderItemA {
// etc
} as OrderItem;

var b = from oi in db.OrderItems
where oi.OrderID == ID
&& oi.AdID != null
select new OrderItemB {
//etc
} as OrderItem;

return a.Concat<OrderItem>(b);

最佳答案

尝试在 IEnumerable 而不是 IQueryable 上进行连接:

return a.AsEnumerable().Concat(b.AsEnumerable());

如果您需要 IQueryable 结果,您可以这样做:

return a.AsEnumerable().Concat(b.AsEnumerable()).AsQueryable();

这样做强制连接发生在内存中而不是 SQL 中,并且任何其他操作也将发生在内存中(LINQ To Objects)。

但是,与 .ToList() 示例不同,执行仍应延迟(使您的数据延迟加载)。

关于c# - 返回包含 2 个子类的 IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454991/

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