0

안녕하세요, 다중 컨텍스트 프로젝트에서 마이그레이션을 사용하려고합니다. 필자는이 오류가 :엔터티 프레임 워크 6.1 마이그레이션 오류

하나 이상의 유효성 검사 오류가 모델 생성 중에 발견되었습니다 : Mellon.Pricing.RiskControl.Migrations.RetornoValidacao는 : EntityType 'RetornoValidacao'는 정의 된 키가 없습니다. 이 EntityType의 키를 정의하십시오.

상황에서 그러한 DBSet가 없다는 것이 있습니다.

코드는 다음과 같습니다 :

public partial class RiskControlContext : DbContext 
{ 
    public RiskControlContext() 
    : base("RiskControlContext") 
{ 
} 

#region Repositorios 

IDbSet<DeParaCurvas> _deParaCurvas; 
public IDbSet<DeParaCurvas> DeParaCurvas 
{ 
    get { return _deParaCurvas ?? (_deParaCurvas = base.Set<DeParaCurvas>()); } 
} 

IDbSet<DeParaPrecos> _deParaPrecos; 
public IDbSet<DeParaPrecos> DeParaPrecos 
{ 
    get { return _deParaPrecos ?? (_deParaPrecos = base.Set<DeParaPrecos>()); } 
} 

IDbSet<PrecoRiskControl> _precoRiskControl; 
public IDbSet<PrecoRiskControl> PrecoRiskControl 
{ 
    get { return _precoRiskControl ?? (_precoRiskControl = base.Set<PrecoRiskControl>()); } 
} 

IDbSet<VerticeRiskControl> _verticeRiskControl; 
public IDbSet<VerticeRiskControl> VerticeRiskControl 
{ 
    get { return _verticeRiskControl ?? (_verticeRiskControl = base.Set<VerticeRiskControl>()); } 
} 

#endregion 


protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    //Remover as conventions que não são usadas 
    modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); 

    //Adiciona a configuração das entidades de maneira estruturada usando as classes 'TypeConfiguration' em Mapping 
    modelBuilder.Configurations.Add(new DeParaPrecosConfiguration()); 
    modelBuilder.Configurations.Add(new DeParaCurvasConfiguration()); 
    modelBuilder.Configurations.Add(new PrecoRiskControlConfiguration()); 
    modelBuilder.Configurations.Add(new VerticeRiskControlConfiguration()); 

} 

가}

+0

에서

보인다. 초기 마이그레이션 중에 오류가 발생합니까? 아니면 업데이트입니까? 업데이트 인 경우 컨텍스트 외부에서 생성 된 키 (필드 또는 개체)가 없다는 것을 확신합니까? – RyanCJI

+0

안녕하세요, 이것은 사용 가능 마이그레이션 명령입니다. 데이터베이스 자체가 존재하지 않습니다 – user144658

+0

어쨌든 내 컨텍스트에 DbSets를 추가하는 것처럼 보입니다. – user144658

답변

0

내가이 문제를 해결. 오류 메시지는 절대적으로 나빴습니다.

는 "DeParaPreco"엔티티의 다른 프로젝트를 참조하는 지연로드에 문제 그래서

this.Ignore (E => e.Ativo)를 첨가하여 그것이 reaolved; 당신은 물리적 데이터베이스에있는 개체를 검토하고 RetornoValidacao``을 검색 할 수도 있습니다처럼 EntityTypeConfiguration

관련 문제