如何验证以防止记录重复。这是我的控制器(创建)
[HttpPost, ValidateAntiForgeryToken]
public ActionResult Create(Project mcpc, HttpPostedFileBase file,
[Bind(Include =
"ProjectID,NumberMCP,EngineerID,SiteLocationID,nameProject,Ptype, MCPcontent, Proj, ContentType")] Project project)
{
try
{
if (seg.ValidaAcceso(Session["AppCode"].ToString(), Convert.ToInt16(Session["UsrRol"]), "Crear"))
{
if (file != null && file.ContentLength > 0)
{
string ds = file.FileName.Substring(file.FileName.Length - 3);
string p = string.Empty;
p = Server.MapPath("~/UploadFiles/");
file.SaveAs(p + file.FileName);
if (file.ContentLength > 0)
{
BinaryReader br = new BinaryReader(file.InputStream);
byte[] buffer = br.ReadBytes(file.ContentLength);
using (db)
{
mcpc.Proj = file.FileName;
mcpc.ContentType = file.ContentType;
mcpc.MCPcontent = buffer;
db.Projects.Add(mcpc);
db.SaveChanges();
}
}
ViewBag.EngineerID = new SelectList(db.Engineers, "EngineerID", "eName", project.EngineerID);
ViewBag.SiteLocationID = new SelectList(db.SiteLocations, "SiteLocationID", "nameSL", project.SiteLocationID);
return RedirectToAction("Index");
}
else
{
TempData["Message"] = "No se elegió ningún archivo.";
return RedirectToAction("Create");
}
}
else
{
return seg.NotAccess();
}
}
catch /*(Exception ex)*/
{
throw;
}
}
我使用 ProjectID 作为标识主键,并且 NumberMCP 不能有重复项。
我一直在四处寻找如何向用户显示无法创建记录,因为它已经被占用了。因此,这可能是一个非常简单的问题,但是防止用户尝试输入重复记录的最佳方法是什么?(新节目)
在尝试将其添加到数据库之前,请检查可能的重复字段。如果存在,则向用户返回错误消息,否则添加它。
using (db)
{
if (db.Projects.Any(p => p.NumberMCP == mcpc.NumberMCP))
{
// Handle error here
}
mcpc.Proj = file.FileName;
mcpc.ContentType = file.ContentType;
mcpc.MCPcontent = buffer;
db.Projects.Add(mcpc);
db.SaveChanges();
}