У меня есть процесс сертификации. Сейчас он добавит людей в мою таблицу сертификации, даже если они уже сертифицированы для данного товара.Проверьте, существует ли строка перед ее добавлением?
На моей странице просмотра у меня есть procedureID
и есть имя пользователя Active Directory. Я передаю это моему методу контроллера, который затем добавляет их в таблицу.
Однако, если они уже существуют, им не нужно добавлять их, просто обновляя дату сертификации и оставляя все остальное в покое.
У меня возникли проблемы с проверкой, существуют ли они.
[HttpPost]
public ActionResult AddCertification(int procedureID, FormCollection collection)
{
string[] certifiedUsers = collection["members"].Split(',');
IPACS_Certification ipacs_certification = new IPACS_Certification();
foreach (var item in certifiedUsers)
{
// Does the certification exist?
IPACS_Certification doesExist = db.IPACS_Certification.Where(m => m.adUserName == item && m.procedureID == procedureID).Select(m => m);
ipacs_certification.procedureID = procedureID;
ipacs_certification.certifiedDate = DateTime.Now;
ipacs_certification.adUserName = item;
db.IPACS_Certification.Add(ipacs_certification);
db.SaveChanges();
}
return RedirectToAction("AddCertification");
}
В моей таблице содержатся следующие столбцы.
certID (ключ IDENTITY)
procedureID (FKEY Процедуре таблицу)
certifiedDate DATETIME
adUserName NVARCHAR
Если они существуют, я должен быть в состоянии захватить строку из adUserName и procedureID и захватить уникальная одиночная запись. Если они существуют, все, что мне нужно сделать, это обновить certifiedDate до сегодняшней даты. Если запись не найдена, мне необходимо выполнить добавление выше.
Приведенный выше код содержит ошибку:
IPACS_Certification doesExist = db.IPACS_Certification.Where(m => m.adUserName == item && m.procedureID == procedureID).Select(m => m);
Не может неявно преобразовать тип System.Linq.IQueryable в IPACS_Certification. Я знаю, что там что-то не хватает.
какая ошибка вы получаете? –
Каков тип переменной «item», на которую вы ссылаетесь? –
@ LukeW. только ошибка, которую я получаю в настоящее время, находится в нижней части исходного сообщения. Главный вопрос: я не уверен, как проверить, существует ли запись без использования поля ID. На этом месте есть только adUsername и procedureID. –