【发布时间】:2014-08-18 18:44:33
【问题描述】:
我不确定这怎么可能,但我有两个表,我想通过表 1 的值从表 2 中获取一个值。
表 1 有一个名为“rank”的外键,它是 int。表 2 有一个名为“name”的值,即string。现在表 1 的“排名”与表 2 的“ID”相关。
所以当我说
var result =
db.Table1.Select(x => new { x.name, x.rank }).ToList();
//Bob - 2
我真的很想说
var result =
db.Table1.Select(x => new { x.name, Table2.rank.Where(ID == x.rank) }).ToList();
//Bob - Gold
虽然我还是 LINQ 的新手,但我不确定如何在这样的查询中从另一个表中获取 rank 的字符串值。
编辑
我正在使用的表及其关系值。
用户:ID (PK)、s1elo(FK 到 PastElos)、champ(FK 到 ChampionList)、elo(FK 到 EloList)
PastElo:ID (PK)、排名
ChampionList:ID(PK)、名称
EloList:ID(PK)、排名
Users 和 PastElo 的工作示例
var result =
db.Users.Join(db.PastEloes,
x => x.s1elo, y => y.ID, (x, y)
=> new { y.Rank, x.name, x.other_items_in_Users }).ToList();
注意:PastElo 是 PastEloe 的,因为当我同步我的数据库时,EF 将所有内容都设为复数,因此为什么用户也是用户,我认为这被称为“上下文”。
【问题讨论】:
标签: c# sql sql-server linq