50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

تغییر دیتابیس در Code First روی سرور

سلام دوستان.

من کلا با Database First کار کردم و با Code First مشکل دارم!!

هر بار میخوام یه تغییر توی مدل ها بدم، و اون تغییر رو روی سایت پیاده سازی شده روی هاست ببرم، مشکل زیاد دارم. توی حالت لوکال خوب update-databse میزنم و مشکل خطاهایی مثل

The model backing the 'EFDbContext' context has changed since the database was created.

نداره. ولی وقتی میخوام ببرم روی سرور، نمیدونم مراحل کار چطوریه. من این کار رو میکنم که اول خود دیتابیس رو دستی ویرایش میکنم . بعد محتوای جدول __MigrationHistory لوکال خودم رو میبرم روی دیتابیس سرور و بعد dll ها رو میبرم. که باز هم گاهی خطا میده.

Configuration مایگریشن هم به این صورته:

public Configuration()
{
    AutomaticMigrationsEnabled = false;
    this.AutomaticMigrationDataLossAllowed = false;
}

لطفا راهنمایی کنید که مراحل بالا بردن تغییرات روی دستابیس و مدل، به هاست، چیه؟؟

تشکر

پرسیده شده در 1396/03/30 توسط

7 پاسخ

1

راه های دیگری که وجود دارد اینه که شما به طور دستی همه اون تغییراتی که توی فایل های پوشه migration وجود داره رو روی دیتابیس سرور و sql server به صورت دستی وارد کنید. و راه دیگر این که بر روی سرور ویژوال استودیو نصب کنید و پروژه رو به سرور انتقال بدید و روی سرور اجرا و update database بزنید. راه دیگر این است که کل دیتابیس سرور را حذف کنید که entity framework دوباره خودش دیتابیس رو بسازد(البته اگه دیتا روی سرور دارید اصلا این رو توصیه نمی کنم.)

پاسخ در 1396/03/30 توسط
0

این مشکل همچنان پابرجاست و راه حل درست پیدا نشده. اگه از دوستان کسی اطلاعی داره، راهنمایی کنه.

تشکر

پاسخ در 1396/04/08 توسط
0

MigrationHistory رو پاک کنید و دوباره تست کنید

پاسخ در 1396/03/30 توسط
0

خوب در یکی از پروژه ها، سرور دیتابیس اجازه remote نمیده! این رو چیکار میشه کرد؟

پاسخ در 1396/03/30 توسط
1

سلام یه راه ساده برای این کار این هست که شما وقتی که تغییرات رو بر روی لوکال انجام دادید و می خواهید همان تغییرات بر روی سرور هم انجام بشه برید توی web.config آدرس دیتابیس رو به جای این که لوکال بدید آدرس سرور رو به کانتکس بدید یعنی connection string رو عوض کنید. و دوباره update-database انجام بدید. در این صورت همه ی تغییرات بر روی دیتابیس انجام خواهد شد.

پاسخ در 1396/03/30 توسط
0

خوب من دیتابیس رو به صورت دستی درست میکنم. یعنی همه جدولها همونجوری که باید، میشن. ولی بازم این خطا هست. تا وقتی که جدول MirationHistory رو خودم دستی ویرایش میکنم.

ولی اینم گاهی جواب نمیده.

امکان نصب ویژوال استادیو و حذف دیتابیس نیست اصلا

پاسخ در 1396/03/30 توسط
0

اصلا روند update-database توی مایگریشن چیه؟؟

اگه فقط جدول ها رو آپدیت میکنه و توی MigrationHistory لاگ رو ذخیره میکنه،که تغییر دستی دیتابیس و اضافه کردن آخرین رکورد MigrationHistory، باید جواب بده.

کار دیگه ای میکنه؟؟

پاسخ در 1396/03/30 توسط

پاسخ شما