我正在使用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 值(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1 [MagliteTest.Database.Company]) 其中([c] .Id == 10)select [c]})'无法翻译,将被翻译成 本地评估。”。可以抑制或记录此异常 将事件ID'RelationalEventId.QueryClientEvaluationWarning'传递给 'DbContext.OnConfiguring'中的'ConfigureWarnings'方法或 “ AddDbContext”。
实体框架核心不支持联合吗?
答案 0 :(得分:2)
Union
/ Concat
服务器(SQL)转换(自EF Core 2.x起)。
#6812 Query: Translate IQueryable.Concat/Union/Intersect/Except/etc. to server已跟踪该问题。
根据该链接,它计划在EF Core 3.0中使用。