সবচেয়ে সহজ সমাধান হ'ল SaveChanges
আপনার সত্তা শ্রেণিতে ওভাররাইড করা। আপনি ধরতে পারবেন DbEntityValidationException
, প্রকৃত ত্রুটিগুলি মোড়ক DbEntityValidationException
করে উন্নত বার্তাটি দিয়ে একটি নতুন তৈরি করতে পারেন ।
- আপনার সামথিংসোমথিং.কমটেক্সট.এস ফাইলের পাশের একটি আংশিক শ্রেণি তৈরি করুন।
- এই পোস্টের নীচে কোড ব্যবহার করুন।
- এটাই. আপনার বাস্তবায়ন স্বয়ংক্রিয়ভাবে কোনও রিফ্যাক্টর কাজ ছাড়াই ওভাররডিন সেভচেঞ্জগুলি ব্যবহার করবে।
আপনার ব্যতিক্রম বার্তা এখন এই মত দেখাচ্ছে:
সিস্টেম.ডাটা.এন্টিটি.বিলিডেশন.ডিবিএন্টিটি ভ্যালিডেশনএক্সসেপশন: এক বা একাধিক সত্তার জন্য বৈধকরণ ব্যর্থ হয়েছে। আরও তথ্যের জন্য 'সত্তাবিশেষকরণের ত্রুটি' সম্পত্তি দেখুন। বৈধতা ত্রুটিগুলি হ'ল: ক্ষেত্রের ফোন নাম্বার অবশ্যই '12' এর সর্বোচ্চ দৈর্ঘ্যের স্ট্রিং বা অ্যারের ধরণের হতে হবে; লাস্টনাম ফিল্ডটি প্রয়োজনীয়।
আপনি উত্তরাধিকার সূত্রে প্রাপ্ত কোনও শ্রেণিতে ওভাররাইড হওয়া সেভচেনজগুলি বাদ দিতে পারেন DbContext
:
public partial class SomethingSomethingEntities
{
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (DbEntityValidationException ex)
{
// Retrieve the error messages as a list of strings.
var errorMessages = ex.EntityValidationErrors
.SelectMany(x => x.ValidationErrors)
.Select(x => x.ErrorMessage);
// Join the list to a single string.
var fullErrorMessage = string.Join("; ", errorMessages);
// Combine the original exception message with the new one.
var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);
// Throw a new DbEntityValidationException with the improved exception message.
throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
}
}
}
DbEntityValidationException
এছাড়াও সত্ত্বা যে বৈধতা ত্রুটি সৃষ্ট ধারণ করে। সুতরাং আপনার যদি আরও তথ্যের প্রয়োজন হয় তবে আপনি উপরোক্ত কোডটি এই সত্তাগুলি সম্পর্কে তথ্য আউটপুট পরিবর্তন করতে পারেন।
আরও দেখুন: http://devillers.nl/improving-dbentityvalidationexception/