2013-09-03 12 views
7

Mam Visual Studio 2012 i używam stosu Entity Framework z EF 6. Zrobiłem wszystko poprawnie, ale podczas dodawania migracji otrzymuję błąd.Entity Framework 6 z SQL Server 2012 daje System.Data.Entity.Core.ProviderIncompatibleException

System.Data.Entity.Core.ProviderIncompatibleException

Oto zajęcia

public class Order 
{ 
    public virtual int OrderID { get; set; } 
} 

Plik kontekst

public ShoppingCartContext() : base("ShoppingCartDb") 
{ 
     Database.SetInitializer<ShoppingCartContext>(new DropCreateDatabaseAlways<ShoppingCartContext>()); 
} 

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
     #region Entity Framework 6 RC-1 
     modelBuilder.Properties().Where(x => x.Name == x.DeclaringType.ToString() + "ID") 
       .Configure(x => x.IsKey()); 

     modelBuilder.Properties<DateTime>() 
       .Configure(x => x.HasColumnType("datetime2")); 
     #endregion 

     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
     base.OnModelCreating(modelBuilder); 
    } 

i sekcja pliku web.config dla connctionstring

<connectionStrings> 
    <add name="ShoppingCartDb" 
     connectionString="Server=Localhost;Database=ShoppingCartEfDb;User Id=sa;Password=xxxxxxxxxx" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Dostaję błąd ilekroć Próbuję g, aby dodać migrację jako:

System.Data.Entity.Core.ProviderIncompatibleException: An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct. ---> System.Data.Entity.Core.ProviderIncompatibleException: The provider did not return a ProviderManifestToken string. --->

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

+2

Nie powinieneś używać 'base (" name = ShoppingCartDb ")' zamiast 'base (" ShoppingCartDb ")'? – Pawel

Odpowiedz

21

Spróbuj tego. Upewnij się, że projekt, w którym znajduje się twój ShoppingCartContext, jest projektem początkowym lub podczas wykonywania polecenia dodawania migracji zawiera parametr -startupprojectname ex. add-migration -startupprojectname yourprojectname

+1

Ustawienie projektu WebApi jako "Projekt startowy" było rozwiązaniem mojego problemu. Dobry połów! – ilter

Powiązane problemy