我有一個認證流程。現在它會將人員添加到我的認證表中,即使他們已經針對相關項目進行了認證。添加之前檢查行是否存在?
在我的查看頁面上,我有一個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才能在此處使用。 –