مشکل با جدول Log هنگام عملیات CRUD
سلام .
یه جدول Log دارم که به ازای عملیات CRUD در برنامه Log میندازه .
هیچ ریلیشنی هم با هیچ جدولی نداره . ولی نمیدونم چرا LogSourceId برای جدول Person رکورد PersonId رو صفر میندازه . مشکل کجاست ؟
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "PersonId,PersonCode,PersonName,PersonFamily")] People people)
{
if (ModelState.IsValid)
{
if (!db.People.Any(c => c.PersonCode == people.PersonCode.Trim().ToLower()))
{
db.People.Add(people);
var log = new Logs
{
LogSource = "TblPerson",
LogSourceId = people.PersonId,
LogText = "ثبت",
LogDateTime = DateTime.Now,
UserCode = 1
};
db.Logs.Add(log);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
ModelState.AddModelError("PersonCode", "کد وارد شده تکراری می باشد");
}
}
return View(people);
}
نقل قول: مشکل با جدول Log هنگام عملیات CRUD
دلیلیش اینه که id شما توی sql server تولید میشه.
شما وقتی savechange نزدی اون شی people هنوز id نداره و زمانی که savechange رو بزنی تازه id میگیره
اینجا یا باید دوتا savechange بزنی یا اینکه یه ارتباط بزنی که بتونی با یه savechange ذخیره کنی.
الان اگه میخای مشکلت حل بشه بعد از خط db.People.Add(people); یه db.SaveChanges(); بزن
نقل قول: مشکل با جدول Log هنگام عملیات CRUD
حرفتون کاملا درسته .
فقط یه سوال ؟
در Request های زیاد جدول Log من دچار مشکل نمیشه ؟