在使用代码的.NET4 MVC 4首先,我有两个类形成多对多的关系。 如何编写一个简单的LINQ查询来查找所有包含至少一个或多个流派的游戏? (即Retreive是战略和/或沙箱体裁的所有游戏)LINQ相交查询使用.NET4的多对多关系MVC4代码优先
public class Game
{
public int ID { get; set; }
public virtual ICollection<Genre> Genres { get; set; }
}
public class Genre
{
public int ID { get; set; }
public virtual ICollection<Game> Games { get; set; }
}
请注意,我用的代码第一次,所以我必须在该抽象没有访问连接表GenreGames。
我曾尝试以下找到一个游戏,包含了从阵列GID至少一个流派ID:
var gid = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var result = from g in unitOfWork.GameRepository.dbSet
where (
from gen in unitOfWork.GenreRepository.dbSet
where gid.Contains(gen.ID)
select gen.ID
).Any()
select g;
检索当结果
List<Game> similiarGames = result.ToList<Game>();
下面的错误出现。
无法创建'GratifyGaming.Domain.Models.Genre'类型的常量值。只有原始类型或枚举类型在此上下文中受支持。
我怎样才能得到我想只使用基元或枚举类型的结果?有没有解决方法?
您提供匹配的游戏ID与类型ID的答案。我试图将任何G.Genre ID与gid中的任何值匹配。 – TryCatch
@TryCatch,我已更新我的答案,看看 –
随着最新的编辑你的代码的作品。 – TryCatch