我想使用linq查询加入两个表
表1称为活动具有以下字段 ID 码 描述
名为pred的表2具有以下字段 TASK_ID pred_task_id pred_type
我希望linq查询连接两个表并且当且仅当表1中存在task_id和pred_task_id时才返回值.ID
我没有成功刺伤它
from pre in pred.AsEnumerable()
join act in activities.AsEnumerable()
on pre.Field<string>("task_id") equals act.Id
where (pre.Field<string>("task_id") == activity.Id)
select new
{
Pred = getTaskbyID(pre.Field<string>("pred_task_id"), activities),
Succ = getTaskbyID(pre.Field<string>("task_id"),activities),
RelationshipType = pre.Field<string>("pred_type")
});
此代码不执行我要实现的目标。如果activities.id中存在pred.task_id,它将返回所有活动的列表。我想创建另一个过滤器,以确保pred.pred_task_id也存在于活动表中。
答案 0 :(得分:1)
您需要更改where
条款:
where activities.Any(a=> a.Id == pre.Field<string>("pred_task_id"))