我有一个现在不确定如何处理的情况。
我有两个由数据库填充的数据表,还有一列可用于将这两个数据表连接在一起的列名列表。我希望编写一组LINQ查询来实现以下内容:
1. 显示两个数据表的行(内部连接,用于从另一个更新)。 2. 显示一个数据表中不存在于另一个数据表中的行(一个查询使用左连接用于插入,另一个使用右连接用于删除)。
现在我知道如何使用普通的LINQ来处理对象或数据表,但在这种情况下,我需要动态应用要连接的列,并且可能有多个。查看以下部分示例代码:
问题在于我不知道字段类型,所以无法应用语句中的
我已经学习了动态LINQ,它似乎非常有前途,但是我没能找到任何关于像我这样尝试做动态LINQ联接的信息。我知道我可以使用嵌套循环或datatable上的
有人有什么指针或示例可以帮助我实现这一点吗,还是我应该回归使用非LINQ方法?
非常感谢。
我有两个由数据库填充的数据表,还有一列可用于将这两个数据表连接在一起的列名列表。我希望编写一组LINQ查询来实现以下内容:
1. 显示两个数据表的行(内部连接,用于从另一个更新)。 2. 显示一个数据表中不存在于另一个数据表中的行(一个查询使用左连接用于插入,另一个使用右连接用于删除)。
现在我知道如何使用普通的LINQ来处理对象或数据表,但在这种情况下,我需要动态应用要连接的列,并且可能有多个。查看以下部分示例代码:
table1.AsEnumerable()
.Join(table2.AsEnumerable(),
dr1 => dr1.Field<string>("ID"),
dr2 => dr2.Field<string>("ID"),
(dr1, dr2) => new
{
FieldID = dr1.Field<string>("ID"),
CdGroup = dr2.Field<string>("Name")
})
问题在于我不知道字段类型,所以无法应用语句中的
.Field<string>
部分。此外,如果有多个联接列,则需要多个联接语句。我已经学习了动态LINQ,它似乎非常有前途,但是我没能找到任何关于像我这样尝试做动态LINQ联接的信息。我知道我可以使用嵌套循环或datatable上的
.Select()
方法来获得相同的结果,但是我正在尝试将LINQ应用于我需要的一些更难的查询。有人有什么指针或示例可以帮助我实现这一点吗,还是我应该回归使用非LINQ方法?
非常感谢。