Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk mengendalikan dan debug Kesalahan Pengesahan Entiti dalam Rangka Kerja Entiti?

Bagaimana untuk mengendalikan dan debug Kesalahan Pengesahan Entiti dalam Rangka Kerja Entiti?

Linda Hamilton
Lepaskan: 2025-01-28 23:16:10
asal
611 orang telah melayarinya

How to Effectively Handle and Debug Entity Validation Errors in Entity Framework?

Tafsiran terperinci mengenai ralat pengesahan entiti

Sekiranya berlaku mesej ralat, "Satu atau lebih entiti gagal. Lihat atribut" Entiti ValidationError "untuk mengetahui lebih lanjut, anda boleh mengakses kumpulan ralat pengesahan.

periksa ralat pengesahan

Semasa proses debugging, anda boleh mengakses pelbagai ralat pengesahan melalui Visual Studio. Walau bagaimanapun, kesilapan akses manual juga boleh dilaksanakan:

try
{
    // 代码
    context.SaveChanges();
}
catch (DbEntityValidationException e)
{
    foreach (var eve in e.EntityValidationErrors)
    {
        Console.WriteLine("实体: \"{0}\", 状态: \"{1}\"", eve.Entry.Entity.GetType().Name, eve.Entry.State);
        foreach(var ve in eve.ValidationErrors)
        {
            Console.WriteLine("- 属性: \"{0}\", 错误: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
        }
    }
    throw;
}
Salin selepas log masuk
Atribut EntityValidationErrs mengandungi entiti kegagalan pengesahan, manakala ValidationError mengandungi senarai ralat tahap atribut.

Penambahbaikan Lanjutan <高>

<属> Tunjukkan nilai atribut:

Gunakan debug.write:

foreach(var ve in eve.ValidationErrors)
{
    Console.WriteLine("- 属性: \"{0}\", 值: \"{1}\", 错误: \"{2}\"", ve.PropertyName, eve.Entry.CurrentValues.GetValue<object>(ve.PropertyName), ve.ErrorMessage);
}
Salin selepas log masuk

<含> keabnormalan tersuai yang mengandungi mesej terperinci:

Debug.Write("- 属性: \"{0}\", 值: \"{1}\", 错误: \"{2}\"", ve.PropertyName, eve.Entry.CurrentValues.GetValue<object>(ve.PropertyName), ve.ErrorMessage);
Salin selepas log masuk
Pengecualian ini disahkan dengan memformat mesej:

<写> ReWahing SaveChanges:

public class FormattedDbEntityValidationException : Exception
{
    public override string Message => InnerException != null ? InnerException?.ToDetailedString() : "";
}
Salin selepas log masuk
Ini memastikan bahawa butiran pengesahan akan dipaparkan dalam log ralat (em, Elmah).

Atas ialah kandungan terperinci Bagaimana untuk mengendalikan dan debug Kesalahan Pengesahan Entiti dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan