我获得了一个数据库。在此数据库中有一个名为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
可以吗?
答案 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