У меня есть база данных с таблицей Patient.На мой взгляд, у меня есть:
<h2>Search by Patient_Name</h2>
@using (@Html.BeginForm("DetailsbyName", "Patient"))
{
@Html.Label("First Name")
@Html.TextBoxFor(model => model.First_Name)
<br />
@Html.Label("Last Name")
@Html.TextBoxFor(model => model.Last_Name)
<input type="submit", value="Submit"/>}
В моем контроллере используется следующий метод:
public ActionResult DetailsbyName(Patient _patient)
{
string Fname = _patient.First_Name;
string Lname = _patient.Last_Name;
try
{
Patient patient = db.Patients.Single(p => p.First_Name == Fname);
patient = db.Patients.Single(p => p.Last_Name == Lname);
return View(patient);
}
catch
{
return RedirectToAction("About", "Home");
}
}
Когда пользователь вводит имя или фамилию, которые встречаются более одного раза в таблице базы данныхdb.Patients.Single
вызывает исключение.Что я мог бы использовать, кроме .Single
, чтобы справиться с этим?
Например, пользователь вводит Имя: Джон Фамилия: Смит Если в базе данных есть несколько раз «Джон», я в настоящее время получаю исключение.Или, если в БД есть более одного «Смита» в качестве фамилии, я получаю исключение.
Спасибо.
Получил работу с этим:
List<Patient> patientList = db.Patients.Where(p => p.Last_Name == Lname || p.First_Name == Fname).ToList();
return View(patientList);
Спасибоза помощь!