我想说一种药物可以含有一种或多种类似的药物,因此它可以产生多种自我关系。
以这种方式尝试这个
[Key]
[Column(Order = 0)]
[ForeignKey("drug_name")]
public string drug_name1 { get; set; }
[Key]
[Column(Order = 1)]
[ForeignKey("drug_name")]
public string drug_name2 { get; set; }
public virtual Drug drug_name { get; set; }
public virtual Drug drug_name { get; set; }
当然不行。我真的不明白应该给Foreign表上的相关字段的名称。我需要其中2个:drug1和drug2但名称应该与相关类别的名称相同,但是我不能给2个字段命名相同。那么我该怎么办呢?
答案 0 :(得分:0)
你所拥有的是完全错误的,所以让我告诉你正确的方法:
public class Drug
{
[Key]
public int DrugId { get; set; }
...
public virtual ICollection<Drug> SimilarDrugs { get; set; }
public class DrugMapping : EntityTypeConfiguration<Drug>
{
public DrugMapping()
{
HasMany(m => m.SimilarDrugs).WithMany();
}
}
}
然后在你的背景下:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new Drug.DrugMapping());
}
有关