9

Sto tentando di configurare le relazioni dei miei modelli in EF7, ma ho affrontato il problema: il metodo OnModelCreating e DbModelBuilder non sono definiti.OnModelCreating non definito in Entity Framework 7

In passato, ho utilizzato EF6, ma ora provo a migrare su EF7.

Ecco il mio codice

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
     //Section -> many Category 
     modelBuilder.Entity<Section>() 
      .HasMany<Category>(p => p.Categories) 
      .WithRequired(p => p.Section); 

     //Section -> many PriceCategory 
     modelBuilder.Entity<Section>() 
      .HasMany<PriceCategory>(p => p.PriceCategories) 
      .WithRequired(p => p.Section); 

     //Category - many Procedures 
     modelBuilder.Entity<Category>() 
      .HasMany<Procedure>(p => p.Procedures) 
      .WithRequired(p => p.Category); 

      //PriceCategory - many PriceProcedures 
      modelBuilder.Entity<PriceCategory>() 
      .HasMany<PriceProcedure>(p => p.PriceProcedures) 
      .WithRequired(p => p.PriceCategory); 
} 

miei importazioni:

using Microsoft.Data.Entity; 
using Domain.Models; 

mio project.json:

{ 
    "version": "1.0.0-*", 
    "description": "Domain Class Library", 
    "authors": [ "Garrus" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 

    "dependencies": { 
     "EntityFramework.Commands": "7.0.0-rc1-final", 
     "EntityFramework.Core": "7.0.0-rc1-final", 
     "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", 
     "Microsoft.CSharp": "4.0.1-beta-23516", 
     "System.Collections": "4.0.11-beta-23516", 
     "System.Linq": "4.0.1-beta-23516", 
     "System.Runtime": "4.0.21-beta-23516", 
     "System.Threading": "4.0.11-beta-23516" 
    }, 

    "frameworks": { 
    "net451": { }, 
    "dnxcore50": {} 
    } 
} 

mi potete aiutare? Forse ho dimenticato qualche pacchetto NuGet o c'è un altro modo per configurare le relazioni tra modelli in EF7?

+0

Ho appena saputo che il metodo ** OnConfiguring ** non è definito. –

risposta

27

dovrebbe essere come questo:

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    .... 
} 

Credo DbModelBuilder stato rinominato in ModelBuilder

+0

Salvato il mio bacon. – radpin

1

sacco Beh ... c'ho di probllems, così io creo nuovi ASP.NET MVC progetto 5, copia i miei vecchi modelli, controller, viewa ecc., E tutto va bene. (credo, questa una strana magia)

Ecco quel metodo overrided, tutto è OK

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
     { 
      base.OnConfiguring(optionsBuilder); 
     } 

     protected override void OnModelCreating(ModelBuilder modelBuilder) 
     { 
      base.OnModelCreating(modelBuilder); 
     } 

miei usings è stessa in questione. E project.json del dominio, forse può essere utile per le persone, che affrontano lo stesso errore.

{ 
    "version": "1.0.0-*", 
    "description": "Domain Class Library", 
    "authors": [ "Garrus" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 

    "dependencies": { 
     "Microsoft.CSharp": "4.0.1-beta-23516", 
     "System.Collections": "4.0.11-beta-23516", 
     "System.Linq": "4.0.1-beta-23516", 
     "System.Runtime": "4.0.21-beta-23516", 
     "System.Threading": "4.0.11-beta-23516", 
     "EntityFramework.Core": "7.0.0-rc1-final", 
     "EntityFramework.Commands": "7.0.0-rc1-final", 
     "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final" 
    }, 

    "frameworks": { 
    "net451": { }, 
    "dnxcore50": { } 
    } 
}