我需要关联表来实现InspChars和Materials之间的M:M关系,但是应该有一个额外的字段。这就是我创建另一个表InspCharsToMaterials的原因。 一切正常,但是ef创建了自己生成的自动关联表,我根本不需要。
如何应对?如何关闭ef的这种可能性(仅适用于多对多)。
[Table("tbl_Materials")]
public class Material
{
[Key]
public int key { get; set; }
[Required]
[Column(TypeName = "NVARCHAR")]
[StringLength(18)]
public string MaterialID { get; set; }
[Required]
[Column(TypeName = "NVARCHAR")]
[StringLength(128)]
public string MaterialName { get; set; }
[Column(TypeName = "bit")]
public bool Deleted { get; set; }
public virtual ICollection<InspectionCharacteristic> InspCharLinks { get; set; }
}
[Table("tbl_InspectionCharacteristic")]
public class InspectionCharacteristic
{
[Key]
[Required]
public int key { get; set; }
[Required]
[Column(TypeName = "NVARCHAR")]
[StringLength(40)]
public string InspCharID { get; set; }
[Required]
[Column(TypeName = "NVARCHAR")]
[StringLength(40)]
public string InspCharName { get; set; }
[Column(TypeName ="BIT")]
public bool IsCatalogType { get; set; }
/*[Column(TypeName = "NVARCHAR")]
[StringLength(8)]
public string CatalogGroupLink { get; set; }*/
[Column("CatalogGroupID")]
public int? CatalogGroupKeyID { get; set; }
//public virtual CatalogGroup CatalogGroup { get; set; }
public virtual ICollection<Material> Materials { get; set; }
}
我的关联表:
[Table("tbl_InspCharToMaterials")]
public class InspCharToMaterial
{
[Key]
public int key { get; set; }
public virtual Material Material { get; set; }
public virtual InspectionCharacteristic InspectionCharacteristic { get; set; }
public bool Deleted { get; set; }
}
答案 0 :(得分:1)
使用public virtual ICollection<Material> Materials { get; set; }
替换InspectionCharacteristic
上的public virtual ICollection<InspectionCharacteristic> InspCharLinks { get; set; }
和Material
上的public virtual ICollection<InspCharToMaterial> InspCharToMaterials { get; set; }
;