gpt4 book ai didi

c# - 给定一个表名列表作为字符串,如何一次查询多个表?

转载 作者:太空狗 更新时间:2023-10-29 21:56:38 26 4
gpt4 key购买 nike

所以我在一家公司工作,那里有几个名称不同但结构完全相同(日期、时间、值)的表。我希望能够做的是让我的程序(C# 或 LINQ/LINQPad)运行这些表并查询特定的行,这样我就可以确保它们都已正确更新。这可行吗?

到目前为止,我的思路是这样的。知道每个表名都会给它一个不同的类,我试图从表中获取值。我可以使用此处的代码获取表格

DataContext dc = new DataContext();
var myTable = (ITable)dc.GetType().GetProperty("Table").GetValue(dc, null);

我的问题是我正在尝试使用类似的方法从该表中获取列。但是,下面会引发错误:

foreach(var e in myTable)
{
double myValue = (double)e.GetType().GetProperty("Value").GetValue(e, null);
}

所以当我查看 e.GetType() 的所有属性时,我注意到它有 2 个,其中一个是 Context,所以我去那里探索。然而,下一层似乎是元数据的死胡同,没有实际数据从我的循环中出来。我什至在朝着正确的方向前进吗?一旦我克服了这个障碍,我就可以很容易地列出一个 list 并以这种方式得出我的结果。任何帮助,将不胜感激。谢谢。

最佳答案

如果您需要通过主键(数据库上下文中的 EntityKey)查询许多表,则ObjectContext 有一个名为 GetObjectByKey 的方法,它允许您通过 EntityKey 获取对象因此,您只需要构造一个 EntityKey。根据MSDN article ,这很简单,

DataContext dc = new DataContext();
EntityKey key = new EntityKey("DataContext.Table","Id", 123);
dynamic entity = dc.GetObjectByKey(key);

您可以创建一个对具有相同结构的所有表(实体)通用的接口(interface),并将您的对象转换为该接口(interface),或者只使用dynamic

关于c# - 给定一个表名列表作为字符串,如何一次查询多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41497262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com