如何在实体框架中指定外键表?

时间:2014-11-09 19:27:30

标签: c# entity-framework-6

我读过的教程中的所有示例都只显示了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"我们正在注释的字段?每个外键是否必须以不同的名称命名?我想如果我们有一百家供应商,这会变得很尴尬。

是否有一些额外的参数或标记来处理这个问题?任何建议都表示赞赏,因为我发现这令人困惑。

1 个答案:

答案 0 :(得分:0)

我误解了外键属性的用途。如果它不遵循命名约定,它定义当前类的键。

我被卡住了,因为我收到了错误消息,我需要使用注释或流畅的api,但它的真正含义是我必须使用流畅的api,因为我想要的关系无法用注释指定。< / p>