Entity Framework Core支持Union吗?

4

我正在尝试使用EF Core查询多个表并使用union,但它不允许。请查找查询并附上.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 }));

在此输入图像描述

这是一个关于IT技术的图片,具体内容无法确定。

你应该直接在这里提供错误信息文本,而不仅仅是作为图像链接。 - Andy G
1个回答

3

如果您尝试使用不同的匿名类型进行Union操作,请使用相同的类型或根本不使用匿名类型,就像我代码片段中的示例一样。

var query =
                _context.Brand.Select(x => x.Brandid)
                    .Union(_context.Factory.Select(x => x.Factorycode))
                    .Union(_context.Brandfactory.Select(x => x.Factoryid));

请记住,EF Core 不会在数据库端评估 Union,而是将其在本地评估。有关详细信息,请参见此问题

6
自从EF Core 3.0版本起,Union()Concat()Intersect()Except()方法均已支持。从我尝试过的情况来看,Union()方法被翻译成了内连接。请记住,它只适用于相同类型。 - Prolog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接