مشکل در ثبت داده در sql پس از یک بار insert شدن
سلام
من برای ثبت داده در دیتابیس sql با یه مشکل مواجه شدم.
وقتی داده رو insert میکنم فقط برای بار اول (یعنی فقط یک رکورد) در دیتابیس ذخیره میشه و دفعات بعد خطا میده.
این کد رو در controller نوشتم.
public ActionResult Enrollment()
{
return View();
}
[HttpPost]
public ActionResult Enrollment(User user)
{
UserRepository BlUser = new UserRepository();
if (ModelState.IsValid)
{
if (BlUser.Add(user))
{
return JavaScript("alert('ثبت شد ');");
}
else
{
return JavaScript("alert('ثبت نشد');");
}
}
else return JavaScript("alert('مقادیر اشتباه است');");
}
این هم کد مربوط به تابع add هست که در repository نوشتم. فکر نمیکنم اشکال از این تابع باشه چون اولین داده با ای دی ۰ رو اضافه میکنه اما بعد از اون رو نمی تونه.
احتمال میدم مربوط به خاصیت auto-increment ای دی باشه.
public bool Add(MyTest.Models.DomainModels.User entity, bool AutoSave = true)
{
try
{
db.Users.Add(entity);
if (AutoSave)
return Convert.ToBoolean(db.SaveChanges());
else
return false;
}
catch
{
return false;
}
}
میشه راهنماییم کنید؟
نقل قول: مشکل در ثبت داده در sql پس از یک بار insert شدن
خب دوستان من خودم متوجه شدم که قطعا اشکال از false بودن auto-increment کلید جداول هست.(چون insert از خود sql هم انجام نمیشه)
اما نمی دونم چرا دیتابیس به من اجازه تغییر در property فیلدهارو نمیده. پیغام میده شما باید جداول رو drop و recreate کنید.
شاید یک دلیلش اتصال بین دیتابیس و دات نت هست . چون دیاگرام رو از طریق data وارد model کردم.
ممنون میشم بهم بگین چه جوری میتونم فیلدها رو تغییر بدم؟
(امکان drop و re-create نیست به هیچ وجه):گریه:
نقل قول: مشکل در ثبت داده در sql پس از یک بار insert شدن
منوی Tools/Options را باز کنید، به قسمت Designers بروید و تیک Prevent Saving Changes را بردارید.