我想加入2个表,它们有2个相同的列。我试过这个但是在新的{}等于新{}时出错了。
我的代码:
var results = from table1 in table.AsEnumerable()
join table2 in comment.AsEnumerable()
//Comment
on new {table1.Field<string>("SignalName"), table1.Field<int?>("MessageID")}
equals new {table2.Field<string>("SignalName"), table2.Field<int?>("MessageID")}
into prodGroup
from table3 in prodGroup.DefaultIfEmpty()
select new
{
// something is there
};
答案 0 :(得分:3)
...试
var results = from r1 in table.AsEnumerable()
join r2 in comment.AsEnumerable()
on new {
signal=r1.Field<string>("SignalName"),
message=r1.Field<int?>("MessageID")
}
equals new {
signal=r2.Field<string>("SignalName"),
message=r2.Field<int?>("MessageID")
} into prodGroup
from r3 in prodGroup.DefaultIfEmpty();
答案 1 :(得分:1)
尝试命名匿名类型的属性。
来自MSDN:
因为匿名类型上的Equals和GetHashCode方法是根据属性的Equals和GetHashcode方法定义的,所以同一匿名类型的两个实例只有在它们的所有属性相等时才相等。