PDA

View Full Version : چطور از اجرای بعدی Seed جلوگیری کنم؟



mmbguide
شنبه 29 اردیبهشت 1403, 10:38 صبح
سلام خدمت دوستان

در پیاده سازی EF Core چنانچه با استفاده از متد HasData اقدام به ثبت داده های اولیه کنم برای بار اول داده ها در بانک اطلاعاتی ثبت میشوند. اما مشکل من آنجایی هست که در اجرای Migrationهای بعدی EF Core ابتدا داده های Seed شده را Delete و مجددا ثبت میکنه. چطور میشه از این کار جلوگیری کرد? البته کدهای این بخش را قبل از Update_database حذف میکنم ولی بطور کلی کار زمانبر و اضافه هستش.

آیا مشکل فوق راه حلی داره؟

تشکر

mmbguide
دوشنبه 31 اردیبهشت 1403, 10:18 صبح
آنچه که از جستجو در اینترنت متوجه شدم باید در فایل snapshot اون بخش از کدها را حذف و یا comment کنم که دیگه اجرا نشه. چون بعد از migration فایل snapshot بزورسانی میشه و دستور update در واقع کدهای snapshot را اجرا میکنه

mmbguide
جمعه 18 خرداد 1403, 18:39 عصر
نتیجه ای که در اینترنت بدست آوردم بدین صورت بود که باید پس از انجام کار، تمام کدهای مربوط به Seed را در فایل Snapshot بصورت Comment در بیارم و یا آنها را حذف کنم. اما مشکل آنجا بود که چنانچه نیازی به Seed باشد باید مجددا تمام کدها را از comment خارج کنم و یا مجددا بنویسم. نتیجه نهایی بدین صورت شد که یک کلاس جداگانه ایجاد کردم متدهای Seed را جداگانه نوشتم و توسط کاربر باید صدا زده بشه. تمام

حالا خیالم راحت شد که همیشه این متدها در دسترس هستند (توسط مدیر برنامه) و در ابتدای راه اندازی پروژه یکبار متد را صدا میزنم و چالش های خود EF رو در زمان Migration ندارم.