我读过的教程中的所有示例都只显示了2个表,所以我对以下场景中的操作感到困惑。
假设我们有3个班级:
public class Product
{
public int id { get; set; }
public string name { get; set; }
public string skuA { get; set; }
public string skuB { get; set; }
public virtual SupplierA supplierA { get; set; }
public virtual SupplierB supplierB { get; set; }
}
public class Supplier A
{
public int id { get; set; }
public string name { get; set; }
public string sku { get; set; }
public int price { get; set; }
}
public class Supplier B
{
public int id { get; set; }
public string name { get; set; }
public string sku { get; set; }
public int price { get; set; }
}
如果我们需要加入相应的产品sku字段,那么使用我在教程中看到的数据注释,它最终看起来像这样:
[ForeignKey("sku")]
public string skuA { get; set; }
[ForeignKey("sku")]
public string skuB { get; set; }
实体框架如何知道哪些外国人" sku"我们正在注释的字段?每个外键是否必须以不同的名称命名?我想如果我们有一百家供应商,这会变得很尴尬。
是否有一些额外的参数或标记来处理这个问题?任何建议都表示赞赏,因为我发现这令人困惑。
答案 0 :(得分:0)
我误解了外键属性的用途。如果它不遵循命名约定,它定义当前类的键。
我被卡住了,因为我收到了错误消息,我需要使用注释或流畅的api,但它的真正含义是我必须使用流畅的api,因为我想要的关系无法用注释指定。< / p>