나는 다음과 같은 기관을하십시오 GasMeter
과 Premise
사이 1 관계 :탐색 속성은 어떻게 작동합니까?
public abstract class Meter
{
public int MeterId { get; set; }
public string EANNumber { get; set; }
public string MeterNumber { get; set; }
[Required]
public virtual Premise Premise { get; set; }
public abstract void AddReading(CounterReading reading);
}
public class GasMeter : Meter
{
public virtual Counter Counter { get; private set; }
public override void AddReading(CounterReading reading)
{
Counter.Readings.Add(reading);
}
}
public class Premise
{
[Key]
public int PremiseId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
[Required]
public virtual Address Address { get; set; }
public string Type { get; set; }
public virtual GasMeter GasMeter { get; set; }
}
나는 일이있다.
myPremise.GasMeter = myMeter
을 설정하고 myMeter.Premise
으로 나중에 코드에서 myPremise
을 검색하려면 어떻게해야합니까? 유창 API를 통해 그것을 설정하는 경우
편집 은 다음과 같이 실행할 때 나는 다음과 같은 예외가
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Premise>().HasOptional(p => p.GasMeter)
.WithRequired(m => m.Premise);
}
: 유형의
예외 '를 System.Data.Entity .ModelConfiguration.ModelValidationException '이 EntityFramework.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다.
추가 정보 모델 생성 중에 하나 이상의 유효성 검사 오류가 감지되었습니다.
전제 : FromRole : NavigationProperty '전제 조건'이 유효하지 않습니다. AssociationType 'Premise_GasMeter'의 FromRole 'Premise_GasMeter_Target'의 'GasMeter'유형은이 NavigationProperty가 선언 된 'Meter'유형과 정확히 일치해야합니다.
그렇다면 상속 기능을 사용하여 탐색 속성을 사용할 수 없다는 의미입니까? 그러면 문제는 어떻게 해결됩니까?
참조 : http://stackoverflow.com/a/27727545/861716 –
@GertArnold 내 업데이트를 참조하십시오. –
'public 가상 전제 전제 {get; 세트; }''가''공공 가상 계량기 '가되어야한다. –