मेरे पास एक ऑटो-जेनरेट एंटिटी फ्रेमवर्क मॉडल है। यह डेटाबेस पहले दृष्टिकोण का उपयोग कर उत्पन्न किया गया था। mid_initial
कॉलम में डेटाबेस परिभाषित बाधा है जो कॉलम को अधिकतम 3 वर्णों तक सीमित करती है।डाटाबेस पहला सत्यापन
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Agency.DataAccess.RegistrationModel
{
using System;
using System.Collections.Generic;
public partial class Registrant
{
public Registrant()
{
}
public int id { get; set; }
public string fname { get; set; }
public string mid_initial { get; set; }
public string lname { get; set; }
}
}
जब मैं कोशिश करते हैं और एक mid_initial
3 से अधिक वर्ण, एक अमान्य स्थिति के साथ एक मॉडल बनाने, ModelState.IsValid
सच लौटा रहा है। इस db.SaveChanges
के कारण इसे तब कहा जाता है, जो DbEntityValidationException
उठाता है।
[HttpPost]
public ActionResult Create(Registrant registrant)
{
try
{
if (ModelState.IsValid)
{
Debug.WriteLine("Entity was valid.");
db.Registrants.Add(registrant);
db.SaveChanges();
return RedirectToAction("Index");
}
return View("Create", registrant);
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
return View(registrant);
}
}
क्यों ModelState.IsValid
विधि सच लौट रहा है? ऐसा लगता है कि मेरा मॉडल अधिकतम लंबाई बाधा से अवगत नहीं है। मैं इसे कैसे अवगत करा सकता हूं?
बंद करें ... लेकिन, जैसा कि मैं समझता हूं, यह काम नहीं करेगा। कंपाइलर कहेंगे: "त्रुटि 2 प्रकार 'रजिस्ट्रार' में पहले से ही 'mid_initial' की परिभाषा है ...) 'मेटाडेटा टाइप' विशेषता के साथ वर्ग 'रजिस्ट्रार' को चिह्नित करने और सत्यापन के लिए एक और कक्षा बनाने की आवश्यकता है। Http: // stackoverflow। com/प्रश्न/25722866/EF5-db-पहले उत्पन्न मॉडल और कस्टम मान्यता/25,741,213 # 25,741,213 –