我有以下 linq 查询,可在两个表之间创建左连接:
var joinResultRows = from leftTable in dataSet.Tables[leftTableName].AsEnumerable()
join
rightTable in dataSet.Tables[rightTableName].AsEnumerable()
on leftTable.Field<string>(leftComparedColumnName) equals rightTable.Field<string>(rightComparedColumnName)
into leftJoinedResult
select new { leftTable, leftJoinedResult };
我想得到回答这个问题的行:左列中的字符串值包含右列中的字符串值。
我试过这个:
var joinResultRows = from leftTable in dataSet.Tables[leftTableName].AsEnumerable()
join
rightTable in dataSet.Tables[rightTableName].AsEnumerable()
on leftTable.Field<string>(leftComparedColumnName).Contains(rightTable.Field<string>(rightComparedColumnName)) equals true
into leftJoinedResult
select new { leftTable, leftJoinedResult };
但它不起作用,因为在连接的左侧无法识别 rightTable。
如何创建导致 String.Contains 的连接,我是在“where”子句还是“On”子句中执行包含?