مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

راه اندازی Automatic Migration در EF Core

ﺳﻪ شنبه, 21 اسفند 1397 21:49

راه اندازی Automatic Migration در EF Core

با سلام

من برای پروژه خودم یک Class Library دارم از نوع net standard. که داخلش ef core رو پیاده کردم با معماری Onion architecture هم جلو می رم الان اولین مشکلی که دارم بحث اینه که migration رو اضافه کردم ولی روی سرور که انتقال می دم دیتابیس اتوماتیک جداول ساخته نمی شه . برای این موضوع باید چکار بکنم ؟ و می دونم در ef core چیزی به نام Automatic migration مثل قبل نیست و باید تنظیماتی در startup انجام بشه اما توی این معماری و ساختار نمی دونم باید چکار کنم ؟ و اینکه Connection string رو کجا تعریف کنم چون دوباره توی Class library فایل appsetting رو ندارم و بقیه موارد

ممنون می شم توضیحات کاملی بدید

با احترام

چهارشنبه, 22 اسفند 1397 08:11

سلام دوست عزیز

جواب سوال اولتون میشه:

در کلاس Statup پروژه شما متدهایی رو دارین که یکبار زمانی که پروژه اجرا میشه اجرا میشن. خب در متد Configure شما باید از Context که تعریف کردین ایجاد کنین و دستور زیر رو وارد کنید تا دیتابیس شما هنگام اجرای پروژه ساخته بشه.

myDbContext.Database.Migrate();

این رو در نظر داشته باشید که migration رو باید قبلا فعال کرده باشید تا تنظیمات مربوط به migration در مسیر مشخص Migration ایجاد بشه. که دستور اینکتار به صورت زیر است و باید Console Package Manager این دستور رو وارد کنید.

Add-Migration InitialCreate

خب برای تعریف Connection String شما باید متد زیر رو بازنویسی کنید.

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
            optionsBuilder.UseSqlite("Connection String");
    }

واضح است که optionBuilder سعی می‌کنه دیتابیس رو با استفاده از SQLite ایجاد کنه. شما باید پکیج مخصوص اینکار که برای SqlServer هست رو نصب کنی.

Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.3

در این صورت دستور بالا به شکل زیر تغییر می‌کنه تا دیتابیس رو با SQLServer ایجاد کنه.

optionsBuilder.UseSqlServer("Connection String

برای اینکه بتونید مثل Connection String رو خارج از کلاس و تحت عنوان تنظیمات در appsettings.json انجام بدین این مقاله کمکتون می‌کنه.

موفق باشید.

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید