使用两个 SQL 表获取 Linq 值
本文关键字:SQL 获取 Linq 两个 | 更新日期: 2023-09-27 18:30:07
我在编写正确的 LINQ 语法时遇到问题。
我有一个名为eloLists的表,其值为ID
(int(和Rank
(字符串(,以及一个名为User的表,其值为elo
(int(。
我正在尝试通过获取用户的相应elo
来获取用户的rank
,该与ID
列匹配。
所以我有一条线像
Temp = Temp + person.summonerID + "," + person.name + "," + person.summoner + "," + myQuery + ",";
我在哪里尝试使用 myQuery 来获得这个答案。我的尝试是这样的,但我迷路了。
var myQuery = db.eloLists.Select(x => x.rank.Where(x.ID = db.Users.Select(y => y.elo)));
我不确定这是否是正确的。
编辑:
var myQuery = db.eloLists.Where(x => db.Users.Select(y => y.elo).Contains(x.ID)).Select(e => e.rank);
foreach (var person in db.Users)
{
Temp = Temp + person.summonerID + "," + person.name + "," + person.summoner + "," + myQuery + ",";
}
创建一个返回字符串并接受用户对象的方法。
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) + ",";
}