رفع خطای More than one context type was found in the assembly در Code First

جمعه 9 مرداد 1394

در این مقاله با نحوه رفع خطای More than one context type was found in the assembly در هنگام Migration (مهاجرت) در Code First آشنا خواهید شد.

رفع خطای More than one context type was found in the assembly در Code First

بارها شده است که در هنگام ساخت مدل به صورت CodeFirst نیاز به ویرایش و آپدیت مدل خود پیدا کرده اید. برای این کار لازم است که عملیات مهاجرت را انجام دهید. اگر با Migration یا مهاجرت در CodeFirst آشنایی ندارید بهتر است اینجا را مشاهده نمایید. ولی برای انجام این آپدیت ممکن است با مشکلاتی مواجه شده اید.

به مثال عملی زیر دقت نمایید.

یک پروژه از نوع MVC ایجاد می نماییم.

2 کلاس با نام های Info و Person می سازیم.

Person.cs

    public class Person
    {
        public int PersonID { get; set; }
        public string PersonName { get; set; }
        public string personFamily { get; set; }
        public int PersonAge { get; set; }

        public Info infoes { get; set; } 
    }

Info.cs

    public class Info
    {
        public int InfoID { get; set; }
        public int PersonID { get; set; }
        public string InfoName { get; set; }
        public string PersonEmail { get; set; }

        public List<Person> Persons { get; set; }
    }

حالا اگر بخواهیم یک پروپرتی به یکی از مدل هایمان استفاده کنیم یا آپدیتی در مدل انجام دهیم به دلیل آنکه در Code First هستیم باید عملیات مهاجرت را انجام دهیم. برای این کار در ابتدا برای استفاده ازMigration  در کد فرست باید Entity Framework را به پروژه اضافه کرد.

 

برای انجام این کار از منوی Tools گزینه ی Nuget Package Manager و سپس منوی داخلی Package Manager Console را انتخاب کرده و سپس در پنجره ظاهر شده رشته زیر را وارد می کنیم تا به پروژه فایل های EntityFramework  اضافه شود.

 Install-Package EntityFramework

 

حال پروژه ما آماده انجام عملیات Migration است.

کد زیر را وارد می نماییم.

Enable-Migrations

حال اگر با خطای زیر مواجه شدید. (این خطا هنگامی رخ می دهد که پروژه شما دارای چند Context باشد)

نگران نباشید کافی است به جای دستور بالا از دستور زیر استفاده نمایید:

Enable-Migrations -ContextTypeName SampleMigrate.Models.SampleMigrateContext

در اینجا SampleMigrate نام پروژه است و شما باید به جای آن نام پروژه خود را جایگزین آن نمایید.

سپس قادر خواهید بود عملیات بعدی مهاجرت را به راحتی انجام دهید.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید