سلام
من یک 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 تعریف شده.
ممنون اگر راهنمایی کنید.