PDA

View Full Version : سوال: علت ایجاد خطا در زمان Log کردن اطلاعات یک Action



mmbguide
سه شنبه 02 فروردین 1401, 13:05 عصر
سلام

من یک ActionFilter در متد OnActionExecuting ایجاد کردم و ابتدای خطوط جهت ثبت یکسری اطلاعات از دستور زیر استفاده کردم:

ApplicationDbContext db = new ApplicationDbContext();
var a = new tblActionLog()
{
fldStep = "OnActionExecuting",
fldUserId = db.Users.Where(u => u.UserName == HttpContext.Current.User.Identity.Name).FirstOrDef ault().Id,
fldControllerName = filterContext.ActionDescriptor.ControllerDescripto r.ControllerType.FullName,
fldActionName = filterContext.ActionDescriptor.ActionName,
fldDate = DateTime.Now
};
try
{
db.tblActionLog.Add(a);
db.SaveChanges();
}
catch (Exception ex)
{
throw;
}



زمانی که دستور SaveChanges اجرا میشه یک Exception تولید میشه که اطلاعات ValidationError اون درخصوص مقدار ستون UserName هستش:

ErrorMessage = "The UserName field is required."
PropertyName = "UserName"

مگر این فیلد مربوط به تعریف کاربران نیست؟ و اصلا اقدامی روی این جدول انجام نشده پس چرا این خطا رخ میده؟ البته به Entity موجود در خطا که نگاه میکنم تمام مقادیر خالی هستند و فقط یک مقدار برای Id بصورت GUID تعریف شده.

ممنون اگر راهنمایی کنید.

mmbguide
سه شنبه 02 فروردین 1401, 22:04 عصر
درضمن با استفاده از ApplicationDbContext در جاهای دیگه برنامه برای ذخیره اطلاعات هیچ مشکی نیست و تنها در همین کلاس این مشکل بوجود میاد. حتی این کار را در یک متد جداگانه بصورت Void و هم بصورت Async ایجاد کردم ولی مشکل همچنان وجود داره.