在 Linq 中联接具有字符串值的表
本文关键字:字符串 Linq | 更新日期: 2023-09-27 18:34:07
我得到了一个数据库。在此数据库中有一个名为 Example 的表,如下所示:
ID EntityName EntityID
1 Foo 1
2 Bar 1
3 Foo 2
4 Bar 2
EntityName 和 EntityID 列组合在一起,为 Foo 或 Bar 表生成外键。如果实体名称字段为"Foo",则实体 ID 是指 Foo 表中的 FooID。可悲的是,数据库的结构不会改变。我的问题:
是否可以创建仅根据实体名称的值联接所需表的 Linq 查询?
我正在寻找这样的东西:
from e in examples
join table in [e.EntityName] ON e.EntityID equals table.([EntityID] + "ID")
// etc
能做到吗?
键是 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