دسته بندی ها
00:52 1398/10/06

استفاده از دستورات Migration در پروژه چند لایه

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 518     رتبه کاربر : 4
دسته بندی : Asp.net Mvc Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4102
هوش مصنوعی

پاسخ هوش مصنوعی

برای استفاده از دستورات Migration در پروژه های چند لایه ASP.NET Core، به چند نکته مهم توجه کنید:

  • اطمینان حاصل کنید که DataModelLayer به درستی به پایگاه داده و Entity Framework Core پیکربندی شده است.
  • برای ایجاد مایگریشن ها، شما باید به DataModelLayer به عنوان پروژه فعال (Default Project) در Package Manager Console تبدیل شوید.

مراحلی که باید دنبال کنید:

1. ابتدا به مسیر پوشه DataModelLayer بروید یا آن را در Visual Studio باز کنید.
2. سپس مطمین شوید که پروژه DataModelLayer به عنوان پروژه فعال در Package Manager Console انتخاب شده است.
3. سپس دستور زیر را برای افزودن مایگریشن اجرا کنید:
Add-Migration mig1

و سپس برای به روزرسانی پایگاه داده از دستور زیر استفاده کنید:

Update-Database

در صورتی که هنوز با خطا مواجه هستید، موارد زیر را نیز بررسی کنید:

  • یک Connection String معتبر و مرتبط با پایگاه داده تان را در فایل appsettings.json تنظیم کنید.
  • پیکربندی DbContext را در DataModelLayer به درستی انجام دهید.
  • اطمینان حاصل کنید که پروژه های وابسته به DataModelLayer به درستی مراجع می شوند.

اگر هنوز مشکلی وجود دارد، لطفاً پیام خطا را دقیقاً بررسی کرده و مطمین شوید که تمام وابستگی ها و مراجع درست تنظیم شده اند.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 23:27 1398/10/06

با سلام

برای این کار 2 راه حل وجود داره

 

راه حل اول:

همانطوری که خودتون هم گفتید شما قصد دارید که Migration های شما در لایه DataModelLayer ایجاد بشه. بنابراین وقتی که میخواید Migration رو ایجاد کنید در پنجره Package Manager Console باید در قسمت Default Project لایه مورد نظر رو انتخاب کنید که در اینجا همون لایه DataModelLayer شما هست.

در حال حاضر با توجه به تصویری که شما ارسال کردید شما لایه Laboratory رو انتخاب کردید.

 

راه حل دوم :

همچنین می تونید برای استفاده از دستورات Migration در پروژه چند لایه و برای ایجاد Migartion در لایه دلخواه از دستور زیر استفاده کنید :

 

Add-Migration mig-name -Project DataModelLayer

 

با استفاده از دستور بالا در واقع مشخص کردید که شما می خواید Migration رو در لایه DataModelLayer ایجاد کنید.

 

نکته مهم :

دقت کنید که در فایل startup.cs باید مشخص کنید که دیتابیس شما در کدام لایه باید ایجاد بشه.

 

     services.AddDbContext<ApplicationDbContext>(option =>
            option.UseSqlServer(Configuration.GetConnectionString("myConnectionString"),
            m => m.MigrationsAssembly("ProjectName.DataModelLayer")));

 

در کد بالا مشخص شده که دیتابیس باید در لایه DataModelLayer ایجاد بشه.

به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود