ورود

View Full Version : سوال: مشکل با جدول Log هنگام عملیات CRUD



jafarpalideh
شنبه 21 اردیبهشت 1398, 11:11 صبح
سلام .
یه جدول 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);
}

سعید کشاورز
یک شنبه 22 اردیبهشت 1398, 15:14 عصر
دلیلیش اینه که id شما توی sql server تولید میشه.
شما وقتی savechange نزدی اون شی people هنوز id نداره و زمانی که savechange رو بزنی تازه id میگیره
اینجا یا باید دوتا savechange بزنی یا اینکه یه ارتباط بزنی که بتونی با یه savechange ذخیره کنی.
الان اگه میخای مشکلت حل بشه بعد از خط db.People.Add(people); یه db.SaveChanges(); بزن

jafarpalideh
دوشنبه 23 اردیبهشت 1398, 08:05 صبح
حرفتون کاملا درسته .
فقط یه سوال ؟
در Request های زیاد جدول Log من دچار مشکل نمیشه ؟