Я создал представление в SQL Server, которое содержит наиболее важные столбцы из разных таблиц. Печать содержимого таблицы в представлении ASP.NET MVC работает нормально, но когда я хочу получить сведения об одной записи, возникает проблема.
Количество передаваемых значений первичного ключа должно соответствовать количеству значений первичного ключа, определенных для объекта.
Я перехожу к конкретной записи, делая это:
@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);
}
Кто-то понял, почему возникает эта ошибка? Спасибо за помощь!