entity-framework-core - 联合无法转换为 SQL
问题描述
我正在使用 EFCore 2.2.3,并且禁用了本地评估。
我有以下查询
var query1 = companyContext.Companies.Where(c => c.Name == name);
var query2 = companyContext.Companies.Where(c => c.Id == 10);
如果我自己执行它们,它们会正常工作。
await query1.ToListAsync();
await query2.ToListAsync();
但如果我尝试
var result = await query1.Union(query2).ToListAsync();
我收到以下错误:
InvalidOperationException:为警告“Microsoft.EntityFrameworkCore.Query.QueryClientEvaluationWarning”生成错误:LINQ 表达式“Union({from Company c in value(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[MagliteTest.Database.Company]) where ([ c].Id == 10) select [c]})' 无法翻译,将在本地评估。'。通过将事件 ID 'RelationalEventId.QueryClientEvaluationWarning' 传递给 'DbContext.OnConfiguring' 或 'AddDbContext' 中的 'ConfigureWarnings' 方法,可以抑制或记录此异常。
实体框架核心不支持联合吗?
解决方案
Union
/Concat
服务器 (SQL) 转换尚不支持(从 EF Core 2.x 开始)。
该问题由#6812 Query: Translate IQueryable.Concat/Union/Intersect/Except/etc 跟踪。到服务器。
根据该链接,它计划用于 EF Core 3.0。
推荐阅读
- javascript - 正则表达式数字格式
- react-native - 向上滚动屏幕时如何隐藏底部标签导航器?
- ios - 将字符串数组附加到正文的 Swift 多部分/表单数据上传(问题:数组作为字符串到服务器)
- python - 在图中水平移动点
- node.js - 如何在 nodejs /es2017 中访问窗口或文档对象
- python - 在多索引熊猫数据框中添加丢失的索引
- javascript - 如何修复检查相同随机数组值的函数
- linux - 如何匹配来自两个目录的部分匹配文件名并在找到的内容上执行命令
- javascript - 如何防止多个http请求同时触发
- python - 如何在 django 的重定向请求中传入模型