C# 正在联接两个表,但需要更改联接的值
我需要加入三张桌子。我们叫他们A、B和C 理想情况下,我需要加入A到B到C A包含ID。B包含AID。很容易加入 但是,C有一列,看起来像“00901”。我要把它和表B的援助相匹配,即“9” 请注意,AID是int,而“00901”是varcharC# 正在联接两个表,但需要更改联接的值,c#,asp.net-mvc,linq,join,C#,Asp.net Mvc,Linq,Join,我需要加入三张桌子。我们叫他们A、B和C 理想情况下,我需要加入A到B到C A包含ID。B包含AID。很容易加入 但是,C有一列,看起来像“00901”。我要把它和表B的援助相匹配,即“9” 请注意,AID是int,而“00901”是varchar searchResults = db.A .Join(db.B, a => a.ID, b => b.AID, (a, b) => new { a = a, b = b }) .Join(db.C, b =>
searchResults = db.A
.Join(db.B, a => a.ID, b => b.AID, (a, b) => new { a = a, b = b })
.Join(db.C, b => b.b.AID, c => Int32.Parse(c.cID.Substring(0, 3).TrimStart('0')), (b, c) => new { b = b, c = c })
.Select(c => c. ).Distinct(); //this line is not complete
关于如何做到这一点的想法?我们决定在表格中添加一列,让每个人的生活都更轻松。所以这个问题不再需要了。谢谢您的帮助。所需的逻辑是什么?它仅仅基于表B中列的第3个字符吗?如何将
9
与“00901”
匹配?还有什么是db
,请指定目标ORM(查询提供程序)类型。这就是问题所在。我可以简单地对它做一个子串并修改它的值吗?juunas不,它可以是9=00901或10=01001。你只是想把第一个值包含在第二个值的某个地方吗?