【发布时间】:2015-04-30 06:13:51
【问题描述】:
我需要在两个 LINQ 查询之间建立联合,但第二个查询需要比第一个查询更多的字段。我该怎么做?
例子:
public static void Dummy()
{
var query1 = this.Db.Table1.Select(s => new MyObject() { A = s.Field1, B = s.Field2 });
var query2 = this.Db.Table2.Select(s => new MyObject() { A = s.Field1, B = s.Field2, C = s.Field3 });
var result = query1.Union(query2);
}
当我调用 result.ToList() 时,出现以下错误:
类型'MyObject'出现在两个结构上不兼容 单个 LINQ to Entities 查询中的初始化。一个类型可以是 在同一个查询中的两个地方初始化,但前提是相同 两个地方都设置了属性,并且这些属性设置在 相同的顺序。
我该如何解决这个问题?
Obs.:我无法将Field3 放入query1 中(我无权访问查询,因为我无法更改它)
【问题讨论】:
-
错误信息不言自明!如果您已经在 SQL Server 等中使用过
Union,那么它真的很容易理解它想要表达的意思。
标签: c# linq entity-framework