Problemy z tworzeniem relacji z kluczem obcym w Entity Framework
Mam problem z konfiguracją relacji klucza obcego w moim Entity Framework płynnie Api:
Oto szef raportu:
public class Testata
{
public Testata() { Details = new List<Dettaglio>(); }
public virtual int IDTEST { get; set; }
public virtual string Value { get; set; }
public virtual int IDDETAIL { get; set; }
public virtual string IDTESTALT { get; set; }
public virtual byte[] BLOB { get; set; }
public virtual IList<Dettaglio> Details { get; set; }
}
To jest szczegół raportu
public class Dettaglio
{
public virtual int IDDETAIL { get; set; }
public virtual int IDTEST { get; set; }
public virtual string DSDETAIL { get; set; }
public virtual Testata TEST_TABLE { get; set; }
}
I to jest moja płynna definicja API obu. Kierownik raportu:
public TEST_TABLEMap()
{
// Primary Key
this.HasKey(t => t.IDTEST)
.Property(t => t.IDTEST)
.IsRequired()
.HasColumnType("Int")
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("IDTEST");
// Table & Column Mappings
this.ToTable("TEST_TABLE");
this.Property(t => t.Value).HasColumnName("DSVALUETEST");
this.Property(t => t.IDTESTALT).HasColumnName("IDTESTALT");
this.Property(t => t.BLOB).HasColumnName("BLOB");
}
Szczegóły raportu:
public TEST_DETAILMap()
{
// Primary Key
this.HasKey(t => t.DSDETAIL);
// Properties
this.Property(t => t.DSDETAIL);
// Table & Column Mappings
this.ToTable("TEST_DETAIL");
this.Property(t => t.IDDETAIL).HasColumnName("IDDETAIL");
// this.Property(t => t.IDTEST).HasColumnName("IDTEST");
this.Property(t => t.DSDETAIL).HasColumnName("DSDETAIL");
// Relationships
this.HasOptional(t => t.TEST_TABLE)
.WithMany(t => t.Details)
.HasForeignKey(d => d.IDDETAIL).WillCascadeOnDelete(true);
}
Podczas wykonywania zawsze otrzymuję ten błąd
System.Data.Entity.Edm.EdmAssociationType:: Krotność koliduje z ograniczeniem referencyjnym w roli „Dettaglio_TEST_TABLE_Target” w relacji „Dettaglio_TEST_TABLE”. Ponieważ wszystkie właściwości w roli Zależne są niezawierające wartości null, wielokrotność głównej roli musi wynosić „1”.
Co, jak sądzę, oznacza, że zawiodłem coś w definicji klucza obcego, ale tak naprawdę nie wiem, na co patrzeć. Każda pomoc / podpowiedź jest bardzo ceniona.