C# 如何使用linq中多个值的两个列表之间的交集来获得唯一记录
各位专业人士好, 目前,我被一个问题绊住了,没有找到解决问题的正确方法。问题就在这里 Table 1 Table 2 Form_id Form No Form No Form Type 1 10 10 101 1 10 20 201 1 10 10 301 2 20 10 401 3 30 30 501C# 如何使用linq中多个值的两个列表之间的交集来获得唯一记录,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,各位专业人士好, 目前,我被一个问题绊住了,没有找到解决问题的正确方法。问题就在这里 Table 1 Table 2 Form_id Form No Form No Form Type 1 10 10 101 1 10
谢谢你。在查询之后,只需按一下
不同的
,就可以了
var result= (from t1 in DBContext.table1
join t2 in DBContext.table2 on t1.FormNo equals t2.FormNo
Where FormTypeList.Contains(t2.FormType)
Select new
{
Form_Id = t1.Form_Id,
FormNo = t2.FormNo,
FormType = t2.FormType
}).Distinct().ToList();
请出示您尝试过的代码。您如何知道表单_ID 1的表单类型是101而不是301或401?var result=(从DBContext.table 1中的t1连接到DBContext.table 2中的t2。FormNo等于t2.FormNo,其中FormTypeList.Contains(t2.FormType)选择new{Form_Id=t1.Form_Id,FormNo=t2.FormNo,FormType=t2.FormType}).ToList();@Magnus它是在表中预定义的我已经尝试了上述解决方案。但是它给了我重复的结果,我希望Form_Id在结果中是唯一的。@Nightnight重复了什么?
var result=(from t1 in DBContext.table 1
join t2 in DBContext.table 2 on t1.FormNo equals t2.FormNo
Where FormTypeList.Contains(t2.FormType)
Select new { Form_Id=t1.Form_Id,
FormNo=t2.FormNo,
FormType=t2.FormType
}).ToList();
var result= (from t1 in DBContext.table1
join t2 in DBContext.table2 on t1.FormNo equals t2.FormNo
Where FormTypeList.Contains(t2.FormType)
Select new
{
Form_Id = t1.Form_Id,
FormNo = t2.FormNo,
FormType = t2.FormType
}).Distinct().ToList();