C# 使用两个SQL表获取Linq值
我很难写出正确的LINQ语法 我有一个名为eloLists的表,它的值为C# 使用两个SQL表获取Linq值,c#,sql-server,linq,C#,Sql Server,Linq,我很难写出正确的LINQ语法 我有一个名为eloLists的表,它的值为ID(int)和Rank(string),还有一个名为Users的表,它的值为elo(int) 我试图通过获取用户对应的elo来获取用户的rank,这与ID列相匹配 所以我有一句话 Temp=Temp+person.calleerid+”、“+person.name+”、“+person.calleer+”、“+myQuery+”、” 我正在尝试使用myQuery获得这个答案。我的尝试是这样的,但是我迷路了 var myQu
ID
(int)和Rank
(string),还有一个名为Users的表,它的值为elo
(int)
我试图通过获取用户对应的elo
来获取用户的rank
,这与ID
列相匹配
所以我有一句话
Temp=Temp+person.calleerid+”、“+person.name+”、“+person.calleer+”、“+myQuery+”、”代码>
我正在尝试使用myQuery获得这个答案。我的尝试是这样的,但是我迷路了
var myQuery=db.eloLists.Select(x=>x.rank.Where(x.ID=db.Users.Select(y=>y.elo))代码>
我不确定这一点是否正确
编辑:
创建一个返回字符串并接受用户对象的方法
public string getrank(User person)
{
var myQuery = db.eloLists.FirstOrDefault(x => x.ID == person.elo));
if(myQuery == null) return string.Empty;
return myQuery.Rank;
}
然后使用:
foreach (var person in db.Users)
{
Temp = Temp + person.summonerID + "," + person.name + "," + person.summoner + "," + getrank(person) + ",";
}
那么我如何将其放入临时字符串中?就我的问题?或者我需要传递什么?MyQuery返回一个列组集合。您需要将其放入for循环并生成一个逗号分隔的字符串,然后将其放入第一个语句中。Ok。您的更新将显著更改答案。我将很快更新我的答案。String.Join可能比循环更干净一些
foreach (var person in db.Users)
{
Temp = Temp + person.summonerID + "," + person.name + "," + person.summoner + "," + getrank(person) + ",";
}