我正在创建一个游戏,我的表格布局如下:
dbPlayer:
Id (int)
...
dbGame:
Id (int)
Finished (bool)
...
dbGamePlayer:
GameId
PlayerId
...
考虑到玩家ID,如何选择玩家参与的所有游戏,但是没有(真实)完成?
这就是我到目前为止所做的:
from g in dbGame
join gp in dbGamePlayer on gp.GameId equals g.Id
join p in dbPlayer on p.Id equals gp.PlayerId
where p.Id == 1 && g.Finished == false
select g
但我到处都是错误。对不起,我是LINQ的新人
答案 0 :(得分:0)
您的LINQ声明错误。
联合object
(gp
)必须位于equals-Statement的右侧。
join gp in dbGamePlayer on g.Id equals gp.GameId
同样适用于第二次加入:
join p in dbPlayer on gp.PlayerId equals p.Id
所以完整的陈述应该是这样的:
IEnumerable query = (from g in dbGame
join gp in dbGamePlayer on g.Id equals gp.GameId
join p in dbPlayer on gp.PlayerId equals p.Id
where p.Id == 1 && g.Finished == false
select g);
但错误
名称模型不在equals左侧的范围内。 考虑在equals的两边交换表达式。
应该告诉你的。