entity-framework - 带有连接的 EF 查询未运行
问题描述
您好我在实体框架中有查询,但它不起作用。你有什么想法?
我需要这个结果
SELECT id, min(price) minPrice
FROM (
SELECT id, max(servicePrice) msi FROM offers
GROUP BY id
) as mvo INNER JOIN offers so ON mvo.id=so.id AND mvo.msi=so.servicePrice
WHERE so.id=o.id
GROUP BY so.id
我尝试了以下代码,但有两个错误。加入回报The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'Join'.
。当没有minPrice = ms.Min(s => s.price)
. 当我在那里有 min 函数时,运行时返回System.ArgumentException: 'Value does not fall within the expected range.'
var q =
from vo in dataContext.Offers join so in (
from o in dataContext.Offers
group o by o.id into oo
select new { id = oo.Key, MaxSI = oo.Max(v => (v.servicePrice)) }
) on new { vo.id, vo.servicePrice } equals new { so.id, so.MaxSI }
group vo by vo.id into ms
select new { id = ms.Key, minPrice = ms.Min(s => s.price) }
;
解决方案
我认为加入应该是这样的 -
var q =
from vo in dataContext.Offers join so in (
from o in dataContext.Offers
group o by o.id into oo
select new { id = oo.Key, MaxSI = oo.Max(v => (v.servicePrice)) }
)
on new { id = vo.id, price = vo.servicePrice } equals new { id = so.id, price = so.MaxSI }
group vo by vo.id into ms
select new { id = ms.Key, minPrice = ms.Min(s => s.price) }
;
推荐阅读
- python-3.x - 找出Python中数据框中特定行的特定列中有多少值匹配
- java - 如何在 graphql-java-tools Resolver 中 @Autowire 一个 JPA 存储库
- java - Java:无限循环 hasNextInt()
- python - pd.read_sql 方法来计算大型 Access 数据库中的行数
- c++ - 为什么 .idl 文件中使用的 `cpp_quote` 和 `pragma midl_echo` 不向 C++/WinRT 项目中生成的标头输出任何内容?
- xamarin.forms - 跨平台 Xamarin 表单应用程序 - 未显示 Android 启动画面
- javascript - 打字稿更改对象属性值动态错误
- flutter - 如何在 Flutter 的 Column 中使用带有 ListView 的扩展磁贴
- java - ArrayList.removeAll(Collection<>) 是否关心重复项?
- r - R:如何在测试结果和警告时从测试报告中省略测试警告消息