Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态表名_C#_.net_Linq_Linq To Entities - Fatal编程技术网

C# 动态表名

C# 动态表名,c#,.net,linq,linq-to-entities,C#,.net,Linq,Linq To Entities,我的程序将查询一个数据库 它有3个表,都具有相同的结构: 表1、表2、表3 如何编写一个linq查询来查询这些表中的每个表,并动态指定表名 除此之外。如果向数据库中添加了其他表,则此解决方案必须有效。因此,即使在我编写代码时,table4不存在,它也可能会被添加。尝试以下方法: DataSet s = new DataSet (); DataTable t1 = new DataTable (); t1.Columns.Add ("A", typeof (in

我的程序将查询一个数据库

它有3个表,都具有相同的结构: 表1、表2、表3

如何编写一个linq查询来查询这些表中的每个表,并动态指定表名

除此之外。如果向数据库中添加了其他表,则此解决方案必须有效。因此,即使在我编写代码时,table4不存在,它也可能会被添加。

尝试以下方法:

      DataSet s = new DataSet ();
      DataTable t1 = new DataTable ();
      t1.Columns.Add ("A", typeof (int));
      t1.Columns.Add ("B", typeof (string));
      s.Tables.Add (t1);
      t1.Rows.Add (1, "T1");
      t1.Rows.Add (2, "T1");

      DataTable t2 = new DataTable ();
      t2.Columns.Add ("A", typeof (int));
      t2.Columns.Add ("B", typeof (string));
      s.Tables.Add (t2);
      t2.Rows.Add (1, "T2");
      t2.Rows.Add (2, "T2");
      t2.Rows.Add (3, "T2");

      var result = from t in s.Tables.OfType<DataTable> ()
                   from r in t.Rows.OfType<DataRow> ()
                   select r;
DataSet s=新数据集();
DataTable t1=新的DataTable();
t1.Columns.Add(“A”,typeof(int));
t1.Columns.Add(“B”,类型(字符串));
s、 表.增加(t1);
t1.Rows.Add(1,“t1”);
t1.Rows.Add(2,“t1”);
DataTable t2=新的DataTable();
t2.Columns.Add(“A”,typeof(int));
t2.Columns.Add(“B”,类型(字符串));
s、 表.增加(t2);
t2.增加(1,“t2”);
t2.Rows.Add(2,“t2”);
t2.增加(3,“t2”);
var result=从类型()的s.Tables.OfType中的t开始
从t.Rows.OfType()中的r开始
选择r;

是否可以创建一个表名数组,然后从中提取(即,在表名数组中使用foreach,然后使用数组中的该元素作为名称运行该查询)?。YMMV。祝你好运。如果所有的表都有相同的结构,为什么不只有一个表,用一个额外的列表示记录的“类型”(以前表示记录属于哪个表)?然后您就可以在LINQ查询的where子句中指定记录“type”。恐怕添加的行会减慢查询的速度否?