【发布时间】:2010-11-24 15:48:34
【问题描述】:
我有以下 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”子句中进行包含?
【问题讨论】:
标签: sql linq string join contains