সত্তা ফ্রেমওয়ার্ক ব্যবহার করে এসকিউএল সার্ভার ডেটাবেসে পরিবর্তনগুলি সংরক্ষণ করার সময় এক বা একাধিক সত্তার জন্য বৈধতা ব্যর্থ হয়েছে


337

আমি আমার সম্পাদনাটি ডেটাবেসে সংরক্ষণ করতে চাই এবং আমি এএসপি.নেট এমভিসি 3 / সি # তে সত্ত্বা ফ্রেম ওয়ার্ক কোড-ফার্স্ট ব্যবহার করছি তবে আমি ত্রুটি পাচ্ছি। আমার ইভেন্ট ক্লাসে আমার ডেটটাইম এবং টাইমস্প্যান ডেটাটাইপ রয়েছে তবে আমার ডাটাবেসে আমি যথাক্রমে তারিখ এবং সময় পেয়েছি। এই কারণ হতে পারে? আমি ডাটাবেসে পরিবর্তনগুলি সংরক্ষণের আগে কোডে কীভাবে উপযুক্ত ডেটাটাইপকে কাস্ট করতে পারি।

public class Event
{
    public int EventId { get; set; }
    public int CategoryId { get; set; }
    public int PlaceId { get; set; }
    public string Title { get; set; }
    public decimal Price { get; set; }
    public DateTime EventDate { get; set; }
    public TimeSpan StartTime { get; set; }
    public TimeSpan EndTime { get; set; }
    public string Description { get; set; }
    public string EventPlaceUrl { get; set; }
    public Category Category { get; set; }
    public Place Place { get; set; }
}

কন্ট্রোলারে পদ্ধতি >>>> StoreDB.SaveChanges () এ সমস্যা;

// POST: /EventManager/Edit/386        
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
    var theEvent = storeDB.Events.Find(id);

    if (TryUpdateModel(theEvent))
    {
        storeDB.SaveChanges();
        return RedirectToAction("Index");
    }
    else
    {
        ViewBag.Categories = storeDB.Categories.OrderBy(g => g.Name).ToList();
        ViewBag.Places = storeDB.Places.OrderBy(a => a.Name).ToList();
        return View(theEvent);
    }
}

সঙ্গে

public class EventCalendarEntities : DbContext
{
    public DbSet<Event> Events { get; set; }
    public DbSet<Category> Categories { get; set; }
    public DbSet<Place> Places { get; set; } 
}

এসকিউএল সার্ভার ২০০৮ আর 2 ডাটাবেস / টি-এসকিউএল

EventDate (Datatype = date)  
StartTime (Datatype = time)  
EndTime (Datatype = time)  

এইচটিপি ফর্ম

EventDate (Datatype = DateTime) e.g. 4/8/2011 12:00:00 AM  
StartTime (Datatype = Timespan/time not sure) e.g. 08:30:00  
EndTime (Datatype = Timespan/time not sure) e.g. 09:00:00  

'/' আপ্লিকেশনে সারভার এরর

এক বা একাধিক সত্তার জন্য বৈধতা ব্যর্থ হয়েছে। আরও তথ্যের জন্য 'সত্তাবিশেষকরণের ত্রুটি' সম্পত্তি দেখুন।

বর্ণনা: বর্তমান ওয়েব অনুরোধটি কার্যকর করার সময় একটি অযৌক্তিক ব্যতিক্রম ঘটেছে। ত্রুটি সম্পর্কে আরও তথ্যের জন্য দয়া করে স্ট্যাক ট্রেসটি পর্যালোচনা করুন এবং কোডটি এর উত্পন্ন কোথায়।

ব্যতিক্রমের বিবরণ: সিস্টেম.ডাটা.এন্টিটি.ভিলিডেশন.ডিবিএনটিটিভিডেশন এক্সেক্সেশন: এক বা একাধিক সত্তার জন্য বৈধকরণ ব্যর্থ হয়েছে। আরও তথ্যের জন্য 'সত্তাবিশেষকরণের ত্রুটি' সম্পত্তি দেখুন।

উত্স ত্রুটি:

Line 75:             if (TryUpdateModel(theEvent))
Line 76:             {
Line 77:                 storeDB.SaveChanges();
Line 78:                 return RedirectToAction("Index");
Line 79:             }

উত্স ফাইল: সি: p sep \ এমভিসিএভেন্টক্যালেন্ডার \ এমভিসিভেন্টক্যালেন্ডার \ কন্ট্রোলার \ ইভেন্টম্যানেজারকন্ট্রোলার.সি লাইন: 77

স্ট্যাক ট্রেস:

[DbEntityValidationException: বৈধকরণ এক বা একাধিক প্রতিষ্ঠানের জন্য ব্যর্থ হয়েছে। আরও তথ্যের জন্য 'সত্তাবিশেষকরণের ত্রুটি' সম্পত্তি দেখুন]]


8
সম্ভবত আপনার প্রয়োজনীয় ক্ষেত্রগুলির একটির নাল মান রয়েছে। ইভেন্টের তারিখ, স্টার্টটাইম, মূল্য, বিভাগ ইত্যাদি
ডেভো

আপনি কি প্রতিটি ফর্ম ভেরিয়েবলগুলি পরীক্ষা করে দেখছেন যে প্রতিটি ডাটাবেস সংজ্ঞায়িত টাইপের সাথে মিল রয়েছে? অথবা ড্যাভো যা বলেছিলেন তার মতো, প্রয়োজনীয় ফর্মের একটি মান অনুপস্থিত ...
টিমোথাইলিফোর্ড

সমস্ত পোস্ট ফর্ম ভেরিয়েবল ডাটাবেস সংজ্ঞায়িত প্রকারের সাথে মেলে না। আমি ডাটাবেসে তারিখ এবং সময় ব্যবহার করেছি তবে .NET তে কোনও সরাসরি ডেটাটাইপ নেই। অতএব, আমি ডেটটাইম এবং টাইমস্প্যান ব্যবহার করেছি। এখন আমার যথাক্রমে দুটি এবং তারিখ এবং সময় রূপান্তর করতে হবে।
ব্যবহারকারী522767

আমার জন্য ত্রুটির উত্স একটি স্ট্রিং ফিল্ড ছিল যার 30 টিরও বেশি অক্ষর রয়েছে এবং ডাটাবেসে আমার ক্ষেত্রের আকার 30 ছিল
মোজতাবা

উত্তর:


840

DbEntityValidationExceptionনিম্নলিখিত কোড সহ আপনি সমস্ত তথ্য বের করতে পারেন (আপনার নামের স্থান যুক্ত করতে হবে: System.Data.Entity.Validationএবং System.Diagnosticsআপনার usingতালিকায়):

catch (DbEntityValidationException dbEx)
{
    foreach (var validationErrors in dbEx.EntityValidationErrors)
    {
        foreach (var validationError in validationErrors.ValidationErrors)
        {
            Trace.TraceInformation("Property: {0} Error: {1}", 
                                    validationError.PropertyName, 
                                    validationError.ErrorMessage);
        }
    }
}

7
যদি কোনও বীজ ডেটা পুরোপুরি সন্তুষ্ট না হয় মডেল অ্যাট্রিবিউট বিধিগুলি (যেমন Required)। আমি আরও কিছু তথ্যের সাথে একটি উত্তর যুক্ত করেছি।
ডান রিচার্ডসন

8
উত্তরটি আপনি কোথায় ট্রেস আউটপুট দেখতে পাচ্ছেন তা ব্যাখ্যা করে উন্নত করা যেতে পারে।
এমকতাজা

1
ট্রেসটি খুব দরকারী বলে সম্পর্কে এই এমএসডিএন নিবন্ধটি পেয়েছি
বোরিক

2
আপনি স্যার, ইন্টারনেট জিতেছেন।
লিয়ান্দ্রো

8
ট্রেস আউটপুট আউটপুট উইন্ডোতে দেখা যায়। শীর্ষে ডিবাগ ক্লিক করুন -> উইন্ডোজ -> আউটপুট
রেজগেইগুইটার 20

249

কোনও কোড পরিবর্তন প্রয়োজন:

আপনি মধ্যে ডিবাগ মোডে হলেও catch {...}ব্লক "QuickWatch" উইন্ডো খুলুন ( Ctrl+ + Alt+ + Q) এবং সেখানে আটকান:

((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors

বা:

((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors

আপনি যদি চেষ্টা / ধরা না পড়েন বা ব্যতিক্রম অবজেক্টে অ্যাক্সেস না পেয়ে থাকেন।

এটি আপনাকে ValidationErrorsগাছের মধ্যে ড্রিল করতে দেয় । এই ত্রুটিগুলির মধ্যে তাত্ক্ষণিক অন্তর্দৃষ্টি পাওয়া এটি সবচেয়ে সহজ উপায়।


6
আপনি আমার বন্ধু একজন প্রতিভা, আপনি আমাকে যে ET ত্রুটিটি পেয়েছিলেন তা সন্ধানে আমাকে সহায়তা করেছিলেন, আপনাকে ধন্যবাদ!
মার্ক ক্র্যাম

4
কোনও সমস্যা নেই :) তবে কোনও প্রতিভা নয়, কেবল কুইকওয়াচকেই ভালোবাসুন :)
গনিলে

4
ব্যতিক্রমী অবজেক্ট / ভেরিয়েবলের অ্যাক্সেস নেই তাদের জন্য সবেমাত্র উত্তর আপডেট করেছেন।
গনিলে

7
যতবারই আমি এই ব্যতিক্রমটি পেয়েছি ত্রুটিটি অনুসন্ধান করি, তারপরে আমি এখানে আসি (গুগলের ২ য় ফলাফল), আমি এই পোস্টটি খুঁজে পাই এবং আমি দ্বিতীয় সমাধানটি ডিবাগ> ওয়াচ প্যানেলে ব্যবহার করি। কয়েক ডজন হয়েছে। গনিয়েল ধন্যবাদ
আতা এস

1
দ্বিতীয় ক্যোয়ারীটি চালানোর জন্য আমিই কেবল সেই একজনই পেয়েছি যে বর্তমান প্রসঙ্গে "নাম '$ ব্যতিক্রম' বিদ্যমান নেই"?
অ্যালেক্স ক্লাউস

37

আপনার একই সম্পত্তির নাম সহ ক্লাস রয়েছে, প্রবীণের উত্তরের জন্য এখানে একটি ছোট বর্ধন রয়েছে:

 catch (DbEntityValidationException dbEx)
 {
    foreach (var validationErrors in dbEx.EntityValidationErrors)
    {
       foreach (var validationError in validationErrors.ValidationErrors)
       {
          Trace.TraceInformation(
                "Class: {0}, Property: {1}, Error: {2}",
                validationErrors.Entry.Entity.GetType().FullName,
                validationError.PropertyName,
                validationError.ErrorMessage);
       }
    }
 }

22

প্রবীণ এবং টনি উভয়ের উন্নতি হিসাবে আমি একটি ওভাররাইড ব্যবহার করি:

public partial class MyDatabaseEntities : DbContext
{
    public override int SaveChanges()
    {
        try
        {
            return base.SaveChanges();
        }
        catch (DbEntityValidationException dbEx)
        {
            foreach (var validationErrors in dbEx.EntityValidationErrors)
            {
                foreach (var validationError in validationErrors.ValidationErrors)
                {
                    Trace.TraceInformation("Class: {0}, Property: {1}, Error: {2}",
                        validationErrors.Entry.Entity.GetType().FullName,
                        validationError.PropertyName,
                        validationError.ErrorMessage);
                }
            }

            throw;  // You can also choose to handle the exception here...
        }
    }
}

6

এই প্রয়োগটি মোড়ানো সত্তা ব্যতিক্রম বিশদ পাঠ্য ব্যতিক্রম to এটা তোলে পরিচালনা DbEntityValidationException, DbUpdateException, datetime2(দরকারী যখন এক savind অনেক সত্ত্বা পরিসীমা ত্রুটি (মাইক্রোসফট এসকিউএল), এবং বার্তা অবৈধ সত্তা কী অন্তর্ভুক্ত SaveChangesকল)।

প্রথমত, SaveChangesডিবিকন্টেক্সট ক্লাসে ওভাররাইড করুন :

public class AppDbContext : DbContext
{
    public override int SaveChanges()
    {
        try
        {
            return base.SaveChanges();
        }
        catch (DbEntityValidationException dbEntityValidationException)
        {
            throw ExceptionHelper.CreateFromEntityValidation(dbEntityValidationException);
        }
        catch (DbUpdateException dbUpdateException)
        {
            throw ExceptionHelper.CreateFromDbUpdateException(dbUpdateException);
        }
    }   

    public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken)
    {
        try
        {
            return await base.SaveChangesAsync(cancellationToken);
        }
        catch (DbEntityValidationException dbEntityValidationException)
        {
            throw ExceptionHelper.CreateFromEntityValidation(dbEntityValidationException);
        }
        catch (DbUpdateException dbUpdateException)
        {
            throw ExceptionHelper.CreateFromDbUpdateException(dbUpdateException);
        }
    }

ব্যতিক্রমহেলপার ক্লাস:

public class ExceptionHelper
{
    public static Exception CreateFromEntityValidation(DbEntityValidationException ex)
    {
        return new Exception(GetDbEntityValidationMessage(ex), ex);
    }

    public static string GetDbEntityValidationMessage(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);
        return exceptionMessage;
    }

    public static IEnumerable<Exception> GetInners(Exception ex)
    {
        for (Exception e = ex; e != null; e = e.InnerException)
            yield return e;
    }

    public static Exception CreateFromDbUpdateException(DbUpdateException dbUpdateException)
    {
        var inner = GetInners(dbUpdateException).Last();
        string message = "";
        int i = 1;
        foreach (var entry in dbUpdateException.Entries)
        {
            var entry1 = entry;
            var obj = entry1.CurrentValues.ToObject();
            var type = obj.GetType();
            var propertyNames = entry1.CurrentValues.PropertyNames.Where(x => inner.Message.Contains(x)).ToList();
            // check MS SQL datetime2 error
            if (inner.Message.Contains("datetime2"))
            {
                var propertyNames2 = from x in type.GetProperties()
                                        where x.PropertyType == typeof(DateTime) ||
                                            x.PropertyType == typeof(DateTime?)
                                        select x.Name;
                propertyNames.AddRange(propertyNames2);
            }

            message += "Entry " + i++ + " " + type.Name + ": " + string.Join("; ", propertyNames.Select(x =>
                string.Format("'{0}' = '{1}'", x, entry1.CurrentValues[x])));
        }
        return new Exception(message, dbUpdateException);
    }
}

আপনি যদি ব্যতিক্রমটি পরিচালনা করতে চান তবে আপনার SaveChangesAsync কলটির অপেক্ষা করা উচিত।
অর্ণব চক্রবর্তী

ধন্যবাদ, অর্ণব চক্রবর্তী ! উত্তর ঠিক হয়েছে
সেল করুন

5

এই কোডটি আমার সমস্যা সন্ধান করতে সহায়তা করেছিল যখন আমি আমার সত্তা ভ্যালাইডেশন এরোসের সাথে সমস্যা প্রকাশ করেছি। এটি আমার সত্তা সংজ্ঞা সম্পর্কে সঠিক সমস্যাটি আমাকে জানিয়েছিল। নিম্নলিখিত কোডটি ব্যবহার করে দেখুন যেখানে আপনার স্টোরডিবি.স্যাভ চেঞ্জস () আবরণ করতে হবে; নিম্নলিখিত চেষ্টা করুন ব্লক ধরুন।

  try
{
         if (TryUpdateModel(theEvent))
         {
             storeDB.SaveChanges();
             return RedirectToAction("Index");
         }
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
{
    Exception raise = dbEx;
    foreach (var validationErrors in dbEx.EntityValidationErrors)
    {
        foreach (var validationError in validationErrors.ValidationErrors)
        {
            string message = string.Format("{0}:{1}", 
                validationErrors.Entry.Entity.ToString(),
                validationError.ErrorMessage);
            // raise a new exception nesting
            // the current instance as InnerException
            raise = new InvalidOperationException(message, raise);
        }
    }
    throw raise;
}

4

আমি আজ এই ত্রুটিটি পেয়ে যাচ্ছিলাম এবং এটি কিছুক্ষণের জন্য কার্যকর করতে পারিনি, তবে আমি বুঝতে পেরেছিলাম এটি RequireAttributeআমার মডেলগুলিতে কিছু সংযোজন করার পরে এবং কিছু বিকাশের বীজ ডেটা প্রয়োজনীয় ক্ষেত্রগুলির সকলকেই জনপ্রিয় করে তুলছে না ।
সুতরাং কেবল একটি নোট যে আপনি যদি এই ত্রুটিটি পেয়ে থাকেন তবে কোনও ধরণের আরম্ভ কৌশলের মাধ্যমে ডাটাবেস আপডেট করার সময় DropCreateDatabaseIfModelChangesআপনার বীজ ডেটা কোনও মডেল ডেটা বৈধকরণের বৈশিষ্ট্য পূরণ করে এবং সন্তুষ্ট করে তা নিশ্চিত করতে হবে ।

আমি জানি যে এটি প্রশ্নের সমস্যার তুলনায় কিছুটা আলাদা, তবে এটি একটি জনপ্রিয় প্রশ্ন তাই আমি ভেবেছিলাম যে আমি নিজের মতোই একই সমস্যা থাকা অন্যদের উত্তরে আরও কিছুটা যুক্ত করব।
আশা করি এটি অন্যকে সহায়তা করবে :)


4

আমি মনে করি প্রতিটি SaveChanges()অপারেশনের জন্য ট্রাই / ক্যাচ যুক্ত করা ভাল অভ্যাস নয়, এটি কেন্দ্রীভূত করা ভাল:

এই শ্রেণিকে প্রধান DbContextশ্রেণিতে যুক্ত করুন:

public override int SaveChanges()
{
    try
    {
        return base.SaveChanges();
    }
    catch (DbEntityValidationException ex)
    {
        string errorMessages = string.Join("; ", ex.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage));
        throw new DbEntityValidationException(errorMessages);
    }
}

এটি আপনার প্রসঙ্গের SaveChanges()পদ্ধতিটি ওভাররাইট করবে এবং আপনি সমস্ত সত্তার বৈধতা ত্রুটিযুক্ত একটি কমা বিভাজিত তালিকা পাবেন।

এটি কেবল উন্নতি করতে পারে উত্পাদন তদন্তের ত্রুটিগুলিকে লগ করার জন্য, কেবল একটি ত্রুটি নিক্ষেপ করার পরিবর্তে।

আশা করি এটি সহায়ক।


"DbContext ক্লাস" আমি কোথায় খুঁজে পাব? আমি এই সমস্ত এমভিসি স্টাফ এ নতুন চাই। আমি এমভিসি 5 এবং সত্তা ফ্রেমওয়ার্ক 6 ব্যবহার করছি আমার সলিউশন এক্সপ্লোরারটিতে নামটি কী পছন্দ করবে তা কেবল জানেন না।
জাস্টজহান

@ জাস্টজোন এটি আপনার ডাটাবেস মডেল (বর্গ ফাইল) এ রয়েছে, যদি আপনি জানেন না যে এটি কোথায় তবে আপনি DbContextআপনার প্রকল্পের বিপরীতে কীওয়ার্ডের পুরো অনুসন্ধান করতে পারেন ।
চিটিভি মালেক

1
অ্যাপটিতে এটি সর্বজনীন সমাধান হিসাবে আমি এই পদ্ধতির
সেরাটি পছন্দ করি

3

টনির এক্সটেনশনে এখানে একটি এক্সটেনশন ... :-)

সত্তা ফ্রেমওয়ার্ক 4.x এর জন্য, আপনি কী ক্ষেত্রের নাম এবং মান পেতে চান যাতে কোন সত্তা উদাহরণ (ডিবি রেকর্ড) এর সমস্যা আছে তা আপনি জানতে পারেন তবে আপনি নিম্নলিখিতটি যুক্ত করতে পারেন। এটি আপনার DbContext অবজেক্ট থেকে আরও শক্তিশালী অবজেক্ট কনটেক্সট শ্রেণীর সদস্যদের অ্যাক্সেস সরবরাহ করে।

// Get the key field name & value.
// This assumes your DbContext object is "_context", and that it is a single part key.
var e = ((IObjectContextAdapter)_context).ObjectContext.ObjectStateManager.GetObjectStateEntry(validationErrors.Entry.Entity);
string key = e.EntityKey.EntityKeyValues[0].Key;
string val = e.EntityKey.EntityKeyValues[0].Value;

3

আমি ব্যতিক্রমগুলি পছন্দ করি না আমি অনসভ চেঞ্জগুলি নিবন্ধভুক্ত করেছি এবং এটি পেয়েছি

var validationErrors = model.GetValidationErrors();

var h = validationErrors.SelectMany(x => x.ValidationErrors
                                          .Select(f => "Entity: " 
                                                      +(x.Entry.Entity) 
                                                      + " : " + f.PropertyName 
                                                      + "->" + f.ErrorMessage));

"আমি অনস্যাভ চ্যাঞ্জগুলি নিবন্ধিত করেছি" বলে আপনার অর্থ কী?
আকিরা ইয়ামামোটো

আমি অন্যের মতো প্রসঙ্গে অনস্যাভ চেঞ্জগুলিতে জড়িয়ে পড়েছি, আমি কেবল ব্যতিক্রম পর্যায়ে পৌঁছতে পারি নি \
মিকি পার্লস্টেইন

2

আপনি যখন বৈধতা ত্রুটিযুক্ত কোনও সত্তা সংরক্ষণ করার চেষ্টা করবেন তখনও এই ত্রুটি ঘটে। এর কারণ হিসাবে ভাল উপায় হ'ল আপনার ডিবিতে সঞ্চয় করার আগে মডেলস্টেট.আইএসভিডিকে চেক করা ভুল।


2

নিশ্চিত হয়ে নিন যে আপনার যদি ডিবি সারিতে এনভারচার (50) থাকে তবে আপনি এটিতে 50 টিরও বেশি শ্যাটার সন্নিবেশ করার চেষ্টা করছেন না। বোকা ভুল তবে এটি বের করতে আমাকে 3 ঘন্টা সময় লাগল


1

এটি নির্দিষ্ট কলামের জন্য অনুমোদিত সর্বাধিক সংখ্যক অক্ষরের কারণে হতে পারে, যেমন স্কুএলে একটি ক্ষেত্রে নিম্নলিখিত ডাটা টাইপ থাকতে পারে nvarchar(5)তবে ব্যবহারকারীর কাছ থেকে প্রবেশ করা অক্ষরের সংখ্যা নির্দিষ্টের চেয়ে বেশি হয়, সুতরাং ত্রুটি দেখা দেয়।


1

ডেটাবেস আপডেট করার সময় কয়েক দিন আগে একই সমস্যার মুখোমুখি হয়েছি। আমার ক্ষেত্রে, রক্ষণাবেক্ষণের জন্য কয়েকটি নতুন অ-অযোগ্য কলাম যুক্ত হয়েছিল যা কোডটিতে সরবরাহ করা হয়নি যা ব্যতিক্রম ঘটায়। আমি সেই ক্ষেত্রগুলি সনাক্ত করি এবং তাদের এবং সরবরাহিত মানগুলির সরবরাহ করি।


0

আপনার উত্তরের জন্য ধন্যবাদ, এটি আমাকে অনেক সাহায্য করে। আমি ভিবি.নেটে কোড হিসাবে, ভিবি.নেটের এই বোল্ট কোড

Try
   Return MyBase.SaveChanges()
Catch dbEx As Validation.DbEntityValidationException
   For Each [error] In From validationErrors In dbEx.EntityValidationErrors
                       From validationError In validationErrors.ValidationErrors
                       Select New With { .PropertyName = validationError.PropertyName,
                                         .ErrorMessage = validationError.ErrorMessage,
                                         .ClassFullName = validationErrors.Entry.Entity
                                                                    .GetType().FullName}

        Diagnostics.Trace.TraceInformation("Class: {0}, Property: {1}, Error: {2}",
                                           [error].ClassFullName,
                                           [error].PropertyName,
                                           [error].ErrorMessage)
   Next
   Throw
End Try

0

এটি এমন সম্পত্তি দ্বারা সৃষ্ট হতে পারে যা মডেল দ্বারা পপুলেটেড হয় না .. পরিবর্তে এটি নিয়ামক দ্বারা জনবহুল হয় .. যা এই ত্রুটির কারণ হতে পারে .. এর সমাধান মডেলস্টেট বৈধতা প্রয়োগ করার আগে সম্পত্তি অর্পণ করা হয়। এবং এই দ্বিতীয় অনুমান হয়। আপনার কাছে ইতিমধ্যে আপনার ডেটাবেসে ডেটা থাকতে পারে এবং এটি আপডেট করার চেষ্টা করছেন তবে এখন এটি আনছে।


0

আমার ক্ষেত্রে আমার একটি টেবিল কলামের নামের পথ রয়েছে যা আমি সেট করেছিলাম যা ডাটাটাইপটি বর্ণা (200) ছিল it

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.