我有一个主表,其中包含两个表的公共信息。我还有两个表,每个表都有每种类型的特定信息。最后,我有一个与这两个辅助表中的任何一个有关系的最后一个表。这个最后一个表与这个次表中的一个或两个表有关系是可能的。
模型是:
我想获取主表中的所有寄存器,其中任何辅助表都与数据有关。我把IDData作为条件。
在SQL中它会是这样的:
select * from Maintable, Secondary01, DataRelationship
where MainTable.IDMainTable = Secondary01.IDMainTable
and Secondary01.IDSecondary01 = DataRelationship.IDSecondary01
and DataRelationship.IDData = 1234
UNION
select * from Maintable, Secondary02, DataRelationship
where MainTable.IDMainTable = Secondary02.IDMainTable
and Secondary02.IDSecondary02 = DataRelationship.IDSecondary02
and DataRelationship.IDData = 1234
如何使用扩展方法或linq实体进行此查询?
感谢。
答案 0 :(得分:1)
您可以使用Enumerable.Union
方法。
使用默认相等性生成两个序列的集合并 比较器。
喜欢:
var query = (from t in db.Maintable
from r in db.Secondary02
//.....your rest of query
select ...)
.Union
(from t in db.Maintable
from r in db.Secondary02
//.....your rest of query
select ...);