我正在使用EntityFramework 4从MySQL数据库中删除一些记录。这是我的代码:
using (Entities context = new Entities())
{
foreach (games_designer_binder binder in context.games_designer_binder.Where(c => c.gameId == inGameId))
context.games_designer_binder.DeleteObject(binder);
context.SaveChanges();
return true;
}
这会引发以下异常:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'(SELECT \ n games_designer_binder.gameId,games_designer_binder。第1行)附近使用正确的语法
为什么呢?我需要解决这个问题?
修改:
这很好用:
context.games_designer_binder.Where(c=> c.designerId == 22 && c.gameId == 1276).FirstOrDefault();
答案 0 :(得分:0)
我很确定在迭代集合时无法删除实体。
试试这个:
using (Entities context = new Entities())
{
var binders = context.games_designer_binder.Where(c => c.gameId == inGameId).ToList();
foreach (var binder in binders)
context.games_designer_binder.DeleteObject(binder);
context.SaveChanges();
return true;
}
注意:我建议您更改games_designer_binder集合以反映它实际上是模型绑定器上的集合,因此它以S结尾,例如:games_designer_binderS,因为您可以将其与集合和实体本身搞混。