2012-11-20 13 views
11

Robię projekt ASP.NET MVC ... Kiedy wpisać enable-migracje otrzymuję następujący eroors:otrzymuję błąd podczas uruchamiania enable-migracje w konsoli menedżera pakietów

More than one context type was found in the assembly 'eManager.Web'. 
To enable migrations for eManager.Web.Infrastructure.DepartmentDb, use Enable-Migrations -ContextTypeName eManager.Web.Infrastructure.DepartmentDb. 
To enable migrations for eManager.Web.Models.UsersContext, use Enable-Migrations -ContextTypeName eManager.Web.Models.UsersContext. 

Odpowiedz

35

komunikat o błędzie dokładnie określa, jaki jest problem i co należy zrobić - w tym polecenie, które należy wydać. Wygląda na to, że w twoim projekcie jest więcej niż jeden kontekst (Web.Infrastructure.DepartmentDb i Web.Models.UsersContext), a migracje nie wiedzą, która z tych migracji powinna być włączona. Musisz wskazać na typ kontekstu. Zgodnie z wykorzystaniem komunikat o błędzie:

Enable-Migrations -ContextTypeName eManager.Web.Infrastructure.DepartmentDb. 

umożliwienia migracji dla eManager.Web.Infrastructure.DepartmentDb lub

Enable-Migrations -ContextTypeName eManager.Web.Models.UsersContext. 

umożliwienia migracji dla eManager.Web.Models.UsersContext

+0

dziękuję bardzo za pomoc ... jestem nowym bie do mvc ... więc utknąłem z tymi migracjami .. w tutorialu im referują oni tylko wpisują tylko enable-migraitons i rzeczy działają ... – fizmhd

+1

Tak, samouczki zwykle koncentrują się na najprostszym przypadku. Gdybyś miał tylko jeden kontekst, wystarczyłaby opcja Enable-Migrations. – Pawel

+0

czy możesz zaproponować mi plz ... jakąś książkę do nauki asp.net mvc w szczegółach ... nie mam dobrej wiedzy o abstrakcji i interfejsie etc, ... pracowałem w architekturze n-tier .. – fizmhd

1

Dla tych które mogą chcieć pozostać z jednym kontekstem w projekcie. W tym przypadku będzie to kontekst DepartmentDb.

Przesuń poniższy kod do kontekstu DepartmentDb:

public DepartmentDb() 
 
: base("DefaultConnection") 
 
{ 
 

 
} 
 

 
public DbSet<UserProfile> UserProfiles { get; set; }

Dalej: Get do AccountModels.cs i usuwanie/wykomentuj klasę UsersContext. Otrzymasz błędy kompilacji - więc zastąp odniesienia UsersContext działem DepartmentDb.

Zbuduj ponownie i powinien się powieść.

Teraz przejdź do menedżera pakietów konsoli i uruchomić PM> Enable-migracje

powinien dostać „kod najpierw Migracje włączona eManager.Web projektu.” Ty

Powiązane problemy