我在 MVC 应用程序中使用 Entity Framework 5。我保存了一个匹配列表,在进行实际更新之前,我想将所有发布的匹配加载到 EF 内存中。
我有以下代码(有效)。_context 是我的 EfDbContext:
public bool UpdateMatches(IEnumerable<Match> matchesToUpdate, int userID)
{
matchesToUpdate = matchesToUpdate as List<Match> ?? matchesToUpdate.ToList();
var matchIDs = matchesToUpdate.Select(m => m.ID).ToArray();
_context.Matches.Where(x => matchIDs.Contains(x.ID)).Load();
}
但我真正想要的是这样的:
public bool UpdateMatches(IEnumerable<Match> matchesToUpdate, int userID)
{
_context.Matches.Where(m => matchesToUpdate.Any(x => x.ID == m.ID)).Load();
}
但我得到了错误
“无法创建‘匹配’类型的常量值。在此上下文中仅支持原始类型或枚举类型。”
我也尝试使用包含,但没有运气。我究竟做错了什么?