nii*_*ico 2 asp.net asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5
mvc 4使用sql server 2008,代码优先,ef5
我有一个与视图关联的ViewModel.
作为起点,我正在修改VS创建的脚手架.
我可以填写表格.
当用户单击"保存"时 - 这是脚手架中的代码:
[HttpPost]
public ActionResult Edit(Place place)
{
if (ModelState.IsValid)
{
db.Entry(place).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(place);
Run Code Online (Sandbox Code Playgroud)
地方是一个模型.我需要将viewmodel(包括地点)传递给它.
如何使用EF将viewmodel保存在数据库中?我是否必须先将其拆分为模型?
当我尝试时,我收到此错误:
Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
Run Code Online (Sandbox Code Playgroud)
当我调试它时,似乎PlaceID(来自模型)从传递回控制器httpPost Edit控制器的模型中丢失 - 也许这是错误的来源?
有没有在线最佳实践的例子 - 我找不到任何东西.
谢谢.
如何使用EF将viewmodel保存在数据库中?
您不会在数据库中保留视图模型.他们的角色不是坚持不懈的.视图模型用于定义视图使用的逻辑.您可以在控制器操作中将视图模型映射回您的域模型,该模型将使用您选择的数据访问技术进行持久化.您可以使用AutoMapper在视图模型和域模型之间进行映射.
当我调试它时,似乎PlaceID(来自模型)从传递回控制器httpPost Edit控制器的模型中丢失 - 也许这是错误的来源?
是的,这是可能的原因.如果要更新数据库中的某些记录,EF需要知道哪个是使用该记录的记录.
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |