使用两个 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 + ",";
    }

使用两个 SQL 表获取 Linq 值

创建一个返回字符串并接受用户对象的方法。

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)  + ",";
 }