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

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

کاربر سایت

jaykob

عضویت از 1393/03/30

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

  • سه شنبه 21 اسفند 1397
  • 21:49
تشکر میکنم

با سلام

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

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

با احترام

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • چهارشنبه 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 انجام بدین این مقاله کمکتون می‌کنه.

موفق باشید.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)