J'ai actuellement 3 entités dans mon modèle Item, RegistroItem et ItemTienda: RegistroItem est hérité de Item et ItemTienda a un - to-many relation avec Item. J'ai configuré la RegistrosItems Table en utilisant l'API Fluent comme ceci:L'entité B héritée de l'entité A (utilisant MapInheritedProperties) interrompt la relation entre A et C - Entity Framework Code First
protected override void OnModelCreating(DbModelBuilder MB) {
MB.Entity<Item>().Map(m => { m.ToTable("Items"); })
.Map<RegistroItem>(m => {
m.ToTable("RegistroItems");
m.MapInheritedProperties();
});
Le problème est que dès que je mets ce code, mon arrêt Entité ItemTienda suivi de la relation avec l'article et le code d'abord ne pas ajouter la règle clé Etrangère à la table SQL ItemsTiendas. J'ai essayé beaucoup de choses mais aucune d'entre elles ne fonctionne, Avez-vous une idée de ce qui pourrait être le problème? Ce sont la définition des entités:
public class Item : IRegistrable {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public EstadoRegistrable Estado { get; set; }
public int ProductoID { get; set; }
[ForeignKey("ProductoID")]
public Producto ProductoObj { get; set; }
[Required] [MaxLength(30)]
public string Marca { get; set; }
[ForeignKey("Marca")]
public Marca MarcaObj { get; set; }
[DecimalPrecision(9,3)]
public decimal Tamaño { get; set; }
[MaxLength(100)]
public string Complemento { get; set; }
[MaxLength(500)]
public string Descripción { get; set; }
}
[Semilla(-2147483648)]
public class RegistroItem : Item, IRegistro {
public int IDRegistrable { get; set; }
public DateTime Modificado { get; set; }
public int ModificadorID { get; set; }
public AcciónRegistro Acción { get; set; }
public FuenteDatos Fuente { get; set; }
[MaxLength(1200)]
public string ValoresOriginales { get; set; }
}
public class ItemTienda : IRegistrable {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public EstadoRegistrable Estado { get; set; }
public int TiendaID { get; set; }
[ForeignKey("TiendaID")]
public Tienda TiendaObj { get; set; }
public int ItemID { get; set; }
[ForeignKey("ItemID")]
public Item ItemObj { get; set; }
[StringLength(100)]
public string DescripciónTirilla { get; set; }
[StringLength(100)]
public string DescripciónEstantería { get; set; }
[StringLength(200)]
public string DescripciónWeb { get; set; }
[StringLength(20)]
public string Código { get; set; }
[DecimalPrecision(19, 4)]
public decimal Precio { get; set; }
public DateTime FechaPrecio { get; set; }
public int? UbicaciónTiendaID { get; set; }
[ForeignKey("UbicaciónTiendaID")]
public UbicaciónTienda UbicaciónTiendaObj { get; set; }
public Int16 SolicitudesRevisión { get; set; }
}