我在两个表格游戏和角色之间有多对多的关系。将表与实体框架进行映射时,表示表关系的表未映射。 目前我正试图从数据库中使用LINQ提取特定游戏下的所有游戏角色,但我正在为我的方法的返回类型而苦苦挣扎。查询与linq c的多对多关系#
有没有不同的解决方案,我目前试图用我的代码实现?
public List<Game> GetGamesRole(int? gameID)
{
using (DbContext db = new DbContext())
{
if (!gameID.HasValue && !roleID.HasValue)
{
var query = from game in db.Game select game;
_games = query.ToList();
return _games;
}
else if (gameID.HasValue)
{
var query = db.Game.Join(db.Role, game => game.ID, role => role.ID,
(game, role) => new { Game = game, Role = role }).Where(gameRole => gameRole.Game.ID == gameID).ToList();
_games = query.ToList<Game>();
}
}
}
我的游戏类包含角色列表,是的。我想你的建议,但我不知道这是正确的做法,因为我似乎并没有得到角色 'VAR QUERY1 = db.Game.Include(“角色”)。如果(x => x.ID == gameID).ToList(); _games = query1.ToList(); return _games;' –
尝试使用允许指定lambda的Include重载,这会使查看任何错误变得更容易。我认为包含参数需要是属性的名称,所以如果属性名称是“角色”。但是,再次使用lambda会迫使你正确地做到这一点。 –
我试图使用这一行代码,但仍然不返回角色 var query1 = db.Game.Where(x => x.ID == gameID).Include(g => g.Role).ToList( )' –