استفاده از دستورات Migration در پروژه چند لایه
در حال کار بر روی یک پروژه با استفاده از Asp.net core هستم. ساختار پروژه رو بر اساس معماری سه لایه پیاده سازی کردم. یعنی سه لایه زیر رو دارم :
- لایه Presentation
- لایه DataModelLayer
- لایه CommonLayer
دستورات مربوط به دیتابیس و کلاسهای مربوطه و همه Repository ها و ... رو میخوام ببرم توی لایه DataModelLayer. همچنین قصد دارم Migration ها هم در این لایه ایجاد بشن.
حالا مشکل من اینجاست که وقتی میخوام یک مایگریشن ایجاد کنم و یا با استفاده از دستور update-database دیتابیس رو آپدیت کنم با خطا روبرو میشم. در حالی که وقتی در پروژه های یک لایه این کار رو انجام می دادم هیچ مشکلی وجود نداشت.
Add-Migartion mig1
/////
update-database
خطایی که با اون مواجه میشم خطای زیر هست
نحوه استفاده از دستورات Migration در پروژه چند لایه چجوری هست ؟
با سلام
برای این کار 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 ایجاد بشه.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2