Подтвердить что ты не робот

EF 4.1 OnModelCreating не вызывается

У меня проблема с EF 4.1, не вызывающим OnModelCreating, так что я могу настроить таблицы и т.д. У меня есть существующая база данных. Вот моя строка подключения:

<add name="AcmeDBContext"
     connectionString="metadata=res://*/|res://*/|res://*/;
                       provider=System.Data.SqlClient;
                       provider connection string=&quot;
                       data source=[server];
                       initial catalog=Acme;integrated security=True;
                       multipleactiveresultsets=True;App=EntityFramework&quot;"
     providerName="System.Data.EntityClient" />

Вот мой класс, унаследованный от DbContext:

public class AcmeDBContext : DbContext
{
  public AcmeDBContext()
    : base()
  {
    Database.SetInitializer<AcmeDBContext>(null);        
  }

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
    modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();       
    modelBuilder.Entity<Vehicle>().ToTable("tblVehicle");
    modelBuilder.Entity<VehicleMake>().ToTable("tblVehicleMake");
    modelBuilder.Entity<VehicleModel>().ToTable("tblVehicleModel");
    base.OnModelCreating(modelBuilder);
  }

 }

Я читал и читал онлайн, но я не могу указать, в чем проблема. OnModelCreating никогда не вызывается и, следовательно, исключения, говорящие, что сущность/классы (Vehicle, VehicleMake, VehicleModel) не существуют в текущем контексте, когда я пытаюсь что-либо запросить.

4b9b3361

Ответ 1

Вы используете два подхода вместе - ваша строка подключения говорит, что вы сначала хотите использовать модель сначала или базу данных с EDMX, но вы пишете контекст, чтобы использовать первый или свободный код api для сопоставления базы данных. После использования EDMX OnModelCreating никогда не вызывается. Используйте общую строку SQL-соединения без ресурсов метаданных, если вы хотите использовать OnModelCreating.

<add name="AcmeDBContext"
     connectionString="data source=[server];
                       initial catalog=Acme;integrated security=True;
                       multipleactiveresultsets=True;App=EntityFramework"
     providerName="System.Data.SqlClient" />