【发布时间】:2019-11-12 04:39:37
【问题描述】:
我正在尝试加入Id 的两个收藏。虽然可以看到数据库中的行,但是查询结果是空的。
我有两个集合:userGames 和 games
这是我加入收藏的代码:
var userGamesQuery = userGames.AsQueryable()
.Where(x => x.UserId == userId);
var query = from userGame in userGamesQuery
join game in games.AsQueryable() on userGame.GameId equals game.Id
select game;
第一部分返回 13 个元素,但第二部分不返回任何内容。我认为userGame.GameId equals game.Id 行有一些问题。尝试在userGame.GameId 和game.Id 上使用ObjectId.Parse(),但没有运气。
这是我的模型
游戏类:
public class Game
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
}
用户游戏:
public class UserGames
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string UserId { get; set; }
public string GameId { get; set; }
}
【问题讨论】:
-
看看图书馆MongoDB.Entities。它具有对关系的内置支持,这使得创建和查询实体/文档之间的关系变得非常轻松。无需像上面那样创建像
UserGames这样的连接实体或手动编写连接查询。
标签: c# mongodb mongodb.driver