我有以下' on'在我的C#中的LINQ查询中设置定义,尝试合并两个DataTable。问题出在m
,列InputValue
是一个字符串,可能包含数值或字母数字值。这很糟糕,因为我认为Int32.Parse(string)
可能会中断我的查询。我的where子句将被指定,以便我们过滤掉这些情况,但是如果Int32.parse函数被调用并且炸毁我的执行并不重要。
on
// m
new {
FormType = m.Field<int>("FormType"),
ID = (int)Int32.Parse(m.Field<string>("InputValue"))
}
equals
// z
new {
FormType = z.Field<int>("FormType"),
ID = z.Field<int>("ZoneID")
}
where ... /* bad Int32.Parse cases would be filtered out.. */
答案 0 :(得分:0)
您需要构建查询以在加入之前过滤表。
例如:
from l in left where IsValid(l)
join r in right
on /* Your above join condition */
...
;