.net – 传递的主键值的数量必须与实体上定义的主键值的数量相匹配
|
我在SQL Server中创建了一个视图,其中包含来自不同表的最重要的列.
我导航到这样做的具体记录: @Html.ActionLink("Details","Details",new { id=item.Record_number })
记录号是主键.我通过右键单击.edmx模型中的特定变量来手动设置它.然后我尝试使用以下内容获取特定数据: //
// GET: /Record/Details/5
public ActionResult Details(int id = 0)
{
try
{
RecordDataView record = db.RecordDataView.Find(id); //HERE THE ERROR OCCUR
if (record == null)
{
return HttpNotFound();
}
return View(record);
}
catch(EntityException)
{
return RedirectToAction("NoDatabaseConnection","Home");
}
}
模型看起来像这样: namespace Implant.Database
{
using System;
using System.Collections.Generic;
public partial class RecordDataView
{
public int Record_number { get; set; }
public Nullable<System.DateTime> DOB { get; set; }
public Nullable<System.DateTime> Record_date { get; set; }
/** rest of code omitted */
}
}
目前我正在使用以下代码使其全部工作.但我不觉得这是一种非常好的方式或效率.而且我很好奇如何解决上面的失败! //
// GET: /Record/Details/5
public ActionResult Details(int id = 0)
{
var record = from r in db.RecordDataView
select r;
if (id != 0)
{
record = record.Where(r => r.Record_number == id);
}
RecordDataView rec = record.ToList().First();
return View(rec);
}
有人知道为什么会出现这个错误?感谢帮助! 解决方法如果在.edmx中设置主键,则应该更新数据库,因为模型中有PK而不是数据库中的PK.更新:不适用于视图.对于视图,请使用.SingleOrDefault而不是Find(). 在这种情况下,更改以下行:RecordDataView record = db.RecordDataView.Find(id);对于以下内容:RecordDataView recorddataview = db.RecordDataView.SingleOrDefault(m => m.Record_number == id); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET – 构建自己的路由系统
- asp.net-mvc – 如何在ASP.NET MVC中禁用客户端和代理缓存?
- asp.net-mvc-2 – 如何在Asp.net MVC 2中使用Base ViewMode
- asp.net – sitecore模板标准值布局不更新所有项目,布局未加
- 在ASP.NET WebForms中使用jQuery调用’WebMethod’
- asp.net – 在web-farm网站上将machineKey添加到web.config
- asp.net – jquery禁用特定时间的按钮
- asp.net-mvc-3 – 为什么抛出NULL值异常?
- asp.net – 为什么在添加新的响应标头时会出现“平台不支持
- asp.net-mvc-3 – 是否有自动方式在MVC中查找未使用的视图?
- asp.net-mvc – ASP.NET MVC:调用存储过程的最佳
- asp.net-mvc – 在MVC Razor中,如何在子布局下面
- 使用一个Asp.net成员数据库与多个应用程序单一登
- asp.net – 在localhost中将IIS设置为Web开发服务
- asp.net-mvc – 使用Ninject注册到自定义成员资格
- asp.net – 什么导致页面呈现慢?
- asp.net-mvc – 在foreach中的mvc radiobuttons
- asp.net – IIS 7的最大默认POST请求大小 – 如何
- 使用ASP.NET和C#在DropDownList中选择多个值
- asp.net-core – 访问Raw Request Body
