Entity Framework Core 是否支持 Union?

San*_*ani 6 linq entity-framework-core

我正在尝试使用 union 查询 EF Core 中的多个表,如下所示,但它不允许。请找到该查询,并附上.net core框架提供的错误提示上的图像。

 var query =
                _context.Brand.Select(x => new { BrandID = x.Brandid })
                    .Union(_context.Factory.Select(x => new { Fa = x.Factorycode }))
                    .Union(_context.Brandfactory.Select(x => new { BrFc = x.Factoryid }));
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

M. *_*ski 3

您尝试使用Union不同的匿名类型,请使用相同的类型或根本不使用匿名类型,就像我的代码片段中一样

var query =
                _context.Brand.Select(x => x.Brandid)
                    .Union(_context.Factory.Select(x => x.Factorycode))
                    .Union(_context.Brandfactory.Select(x => x.Factoryid));
Run Code Online (Sandbox Code Playgroud)

另请记住,EF core 尚未Union在数据库站点上进行评估,它将在本地进行评估。更多详情请参见本期

  • 自 EF Core 3.0 起,“Union()”[现已支持](https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-3-0-preview-7-and-entity-framework-6 -3-preview-7/) 以及 `Concat()`、`Intersect()` 和 `Except()`。根据我已经尝试过的,它被翻译为内部连接。请记住,它适用于同一类型的工作。 (7认同)