我的模型 Item、RegistroItem 和 ItemTienda 目前有 3 个实体:RegistroItem 是从 Item 继承的,而 ItemTienda 与 Item 具有一对多的关系。我使用 Fluent API 配置了 RegistrosItems 表,如下所示:
protected override void OnModelCreating(DbModelBuilder MB) {
MB.Entity<Item>().Map(m => { m.ToTable("Items"); })
.Map<RegistroItem>(m => {
m.ToTable("RegistroItems");
m.MapInheritedProperties();
});
问题是,只要我输入该代码,我的实体 ItemTienda 就会停止跟踪与 Item 的关系,并且 Code First 不会将 Foreing 键规则添加到 SQL 表 ItemsTiendas。我已经尝试了很多东西,但都没有工作,你知道可能是什么问题吗?这是实体的定义:
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; }
}