Entity Framework 7에서 정의되지 않은 OnModelCreating

asp.net asp.net-core entity-framework entity-framework-core

문제

EF7에서 내 모델의 관계를 설정하려고하는데 문제가 발생했습니다. OnModelCreating 메서드와 DbModelBuilder 는 정의되지 않았습니다.

과거에는 EF6을 사용했지만 지금은 EF7로 마이그레이션하려고합니다.

여기 내 코드가있다.

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);
}

내 수입품 :

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

내 프로젝트 .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": {}
  }
}

나 좀 도와 줄 수있어? 어쩌면 일부 NuGet 패키지를 잊었거나 EF7에서 모델 관계를 설정하는 다른 방법이 있습니까?

수락 된 답변

이런 식으로해야합니다 :

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

DbModelBuilder가 ModelBuilder로 이름이 변경된 것 같습니다.


인기 답변

글쎄 ... 나는 많은 probllems을 가지고있다. 그래서 나는 새로운 ASP.NET 5 MVC 프로젝트를 만들고 , 나의 옛 모델, 컨트롤러, 뷰어 등을 복사한다. ( 나는 이상한 마술이라고 생각한다 )

여기에서 재정의 된 메서드는 모두 OK입니다.

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

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

내 사용법은 문제의 것과 같습니다. Domain의 project.json은 어쩌면 같은 오류가있는 사람들에게 유용 할 수 있습니다.

{
  "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": { }
  }
}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.