LINQ何时构建其" ON"条件对象?

时间:2017-01-23 02:12:04

标签: c# linq datatable

我有以下' 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.. */

1 个答案:

答案 0 :(得分:0)

您需要构建查询以在加入之前过滤表

例如:

from l in left where IsValid(l)
join r in right 
on /* Your above join condition */
...
;