循环通过数据上下文表

本文关键字:上下文 数据 循环 | 更新日期: 2023-09-27 18:28:58

我想做的是,在数据上下文中循环,对于找到的每个表,选择两个不同的行,比较各个列,看看行是否相等。

到目前为止,我已经制作了一个方法来比较两行的值,如果所有行的值都相等,则返回true。

现在,我想把这个方法放入一个foreach循环中,如下所示:

using (DataClassesDataContext db = new DataClassesDataContext(Utillities.dbconnection))
{
    foreach (Table t in db)
    {
        var row1 = from r1 in t where r1.id == constraint1 select;
        var row2 = from r2 in t where r2.id == constraint2 select;
        bool compResult = CompareRows(row1, row2);
    }
}

但是我不知道如何构造foreach循环,所以我可以做出上面的选择:(我已经尝试过db.Mapping.GetTables(),但我看不出这是如何让我更接近的——我只能在数据上下文中获取表名,而不能获取表本身。有没有办法从包含表名的字符串中获取表实体?或者我错过了什么(可能是显而易见的)?

对以上foreach循环的任何帮助或提示都将不胜感激。

循环通过数据上下文表

除非为所有可用类型的组合实现CompareRows,否则这将不起作用。您不能使用匿名类型。

您可以使用此方法来获取所有表/列http://blogs.msdn.com/b/jomo_fisher/archive/2007/07/30/linq-to-sql-trick-get-all-table-names.aspx

我会创建动态sql语句并使用DB.Executequery指令