我有一个存储在数据库中的机器列表,但是它们与它们的类型不同,位于不同的表中。
示例:
表名:行
MachineType1:机器1,机器2,机器3
MachineType2:机器1,机器2,机器3,机器4
MachineType3:计算机1,计算机2
还有另一个存储机器类型的表,如下所示:
Type1,MachineType1
Type2,MachineType2
Type3,MachineType3
我需要遍历每种类型的机器(即:Type2),获取表名(即:MachineType2),遍历该表并获取每台机器的ID(即:1、2、3和4)
我做了很多研究,但找不到任何可以帮助我的东西。
这就是我想要做的:
foreach (var process in processes) {
var dynamictable =
(from t in _context.PlasticProcess // This table has all types of machines and table names
where (t.Id == process)
select t.MachineName
).First();
IEnumerable<int> machine =
from x in _context.dynamictable // (Here is the problem)
select x.Id;
}
答案 0 :(得分:1)
致电非通用DbContext.Set()
会帮助您吗?我假设t.MachineName
是一个字符串,否则请适当更新。
foreach (var process in processes) {
var dynamictable =
(from t in _context.PlasticProcess // This table has all types of machines and table names
where (t.Id == process)
select t.MachineName
).First();
var set = _context.Set(Type.GetType(dynamicTable));
// use set.SqlQuery here.
}
您可以了解有关DbSet.SqlQuery()方法here的信息。
P.S。:我刚刚意识到,您在哪里都没有提到这是否是EF。该答案假定它是EF。