C# 正在联接两个表,但需要更改联接的值

C# 正在联接两个表,但需要更改联接的值,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 =>

我需要加入三张桌子。我们叫他们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 => 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。你只是想把第一个值包含在第二个值的某个地方吗?