PDA

View Full Version : سوال: مشکل در ایجاد پایگاه داده روی یک کامپیوتر دیگر entity framework code first



amirali_asa@yahoo.com
چهارشنبه 17 تیر 1394, 13:56 عصر
وقتی برنامه wpf که با ef code first کار کردم رو روی دستگاه خودم یا یه دستگاه دیگه که ویژوال استودیو و ssms روش نصبه اجرا می کنم بدون مشکل دیتابیس code first رو ایجاد می کنه، اما روی یه دستگاه دیگه که فقط sqllocaldb روش نصبه ارور می ده و نمی تونه دیتابیس رو درست کنه. با حذف کد مطمئن شدم مشکل از ef و ایجاد دیتابیس هستش. به جز sqllocaldb چی دیگه باید روی اون دستگاه نصب بکنم؟

ali_md110
چهارشنبه 17 تیر 1394, 14:39 عصر
باید migration رو فعال کنید تا کلاسها به دیتابیس نگاشت شوند یا ساخته بشن
ابتدا از مسیر روبرو Tools----> Library Package Manager-----> Package Manager Console.
اگر بانک برنامه شما ساخته نشده باشه
دستوراتی باید روی اون پروژه ای که دیتاکانتکست شما هست پیاده کنید


enable-migrations
add-migration InitialCreate



با اجرای این دو دستور یک فولدر بنام
Migrations و درونش یک
کلاس بنام Configoration اضافه میشه که باید درون متد Seed اون یک کوئری بزنید و AutomaticMigrationsEnabled رو هم با true تنظیم کنید
ودر نهایت دستور زیر رو که باید فضای نام System.Data.Entity اضافه کنید توی استات اپ برنامتون صدا بزنید


Database.SetInitializer(new MigrateDatabaseToLatestVersion<youeContext, Configuration>());

تا عمل migration انجام بشه
وقتی عمل ساخت دیتابیس و جداول انجام شد یک جدول سیستمی برای نگهداری تغییرات مدل های برنامه درون دیتابیس ایجاد میشه بنام
dbo.__MigrationHistory
در ضمن اگر دیتابیس ما از قبل شاخته بوریم و موجود بود و خواستیم Migration رو فعال کنیم دستوررات رو بصورت زیر پیاده کنید:



enable-migrations

add-migration Initial -IgnoreChanges

update-database