【发布时间】:2011-07-04 16:21:54
【问题描述】:
当我使用模型优先方法时,此代码运行良好。如果是new Vote(),则停止保存投票。我猜模型首先生成的类在属性设置器上使用了一些“魔法”,我认为这就是我们将virtual 放在代码优先属性中的原因。有没有办法让它以旧的方式工作?还是应该以其他方式搜索和替换并将新对象绑定到图形?
public ActionResult Vote(int id, string votetype)
{
int userid = ViewBag.User.Id;
var pub = DB.Publications.Single(p => p.Id == id);
var votes = pub.Votes.SingleOrDefault(v => v.MemberId == userid) ??
new Vote
{
MemberId = userid,
Publication = pub
};
DB.SaveChanges();
return RedirectToAction("Full", new { id = id });
}
【问题讨论】:
-
这段代码应该做什么?特别是为什么
SaveChanges?您只需从数据库中查询实体,但不会更改任何内容,也不会将新实体添加到上下文中。
标签: asp.net-mvc entity-framework ef-code-first