作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个游戏模型,它附有许多管理器模型。这是我的模型:
public class Organizer
{
public int ID { get; set; }
public string Name { get; set; }
public List<Game> Games {get; set; }
}
public class Game
{
public int ID { get; set; }
public string Name { get; set;}
public List<Organizer> Organizers { get; set; }
}
我正在尝试获取包含特定组织者的所有游戏。例如,我可能有一些这样的数据:
Game
ID Name
-- ----
1 Soccer
2 Baseball
Organizer
ID Name
-- ----
1 John
2 Barry
GameOrganizer
GameID OrganizerID
------ -----------
1 1
2 1
这是我尝试使用的代码:
Organizer thisOrganizer = db.Organizers.Single(o => o.ID == 1);
var gamesQuery = db.Games
.Where(game => game.Organizers.Contains(thisOrganizer))
.Select(g => new { ID = g.ID, Name = g.Name });
这给了我一个错误:
Only primitive types are supported in this context.
我明白它的意思,但我不知道如何用不同的方式来表达它。我最接近的是:
var gamesQuery = db.Games
.Where(game => game.Organizers
.Any(gO => gO.ID == 1));
但这什么也没有返回。我到处都看过,但所有内容都涉及事先已知的字符串数组。
那么,如果没有模型对象,我该如何表达呢?
最佳答案
在您的 Organizer
类中,您的 Games 属性应该如下所示:
public virtual ICollection<Game> Games { get; set; }
参见 here为什么。
然后你应该能够像 abatishchev 在他的回答中写的那样访问所有游戏:
Organizer thisOrganizer = db.Organizers.Single(o => o.ID == 1);
var games = thisOrganizer.Games;
关于c# - 如何在没有 'Only primitive types' 错误的情况下表达 LINQ to Entities 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14783306/
我是一名优秀的程序员,十分优秀!