在使用代碼的.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