在Linq中加入一个包含字符串值的表

时间:2014-12-12 15:16:59

标签: c# linq

我获得了一个数据库。在此数据库中有一个名为Example的表,如下所示:

ID    EntityName    EntityID
1     Foo           1
2     Bar           1
3     Foo           2
4     Bar           2

EntityName和EntityID列组合在一起形成Foo或Bar表的外键。如果EntityName字段是' Foo',则EntityID引用Foo表中的FooID。遗憾的是,数据库的结构不可改变。我的问题:

我是否可以根据EntityName的值创建仅加入所需表格的Linq查询?

我正在寻找类似的东西:

from e in examples
join table in [e.EntityName] ON e.EntityID equals table.([EntityID] + "ID")
// etc

可以吗?

1 个答案:

答案 0 :(得分:0)

键是Name的值数。

因为你有2个你使用工会......就像这样:

var result = 
(from e in examples
 where e.EntityName == "Foo"
 join foos in foo ON e.EntityID equals foo.fooID
)

.Union

(from e in examples
 where e.EntityName == "Bar"
 join bars in bar ON e.EntityID equals bar.barID
);

似乎有"额外"这里它会慢一些,但这应该会导致使用UNION ALL

的高效SQL语句