2017-03-21 44 views
-2

我有以下关系:enter image description here使用许多一对多建于实体框架或手动创建另一个实体

我在这里的问题是:我使用内置的多对许多实体框架,以便在内部EF创建表名ProductCategory,或者手动创建表并手动设置关系1-Many和1-Many;在ProductCategory表中,我只需要表中的外键就没有别的了,哪种方法建议内置或手动执行?为什么?

编辑:正如有人提及我决定创建自己的表,有超过它 更好的控制,并可以修改它,我的表现拥有 以下属性:

public class ProductCategory : IProductCategory { 
    public int ProductCategoryId { set; get; } 
    [ForeignKey("Category")] 
    [Column(Order = 1)] 
    public int CategoryId { set; get; } 
    [ForeignKey("Product")] 
    [Column(Order = 2)] 
    public int ProductId { set; get; } 
    public virtual Product Product { set; get; } 
    public virtual Category Category { set; get; } 
} 
+1

此刻,你的模型是非常基本的,也没有专业人员能够做手工。但是,如果您现在手动构建它,那么如果您需要在桥表中添加更多列或希望管理部分将产品添加到类别中,则将来可以节省您的麻烦。从桥表添加/删除要容易得多,然后修改完整列表。如果它是自动创建的,您将无法访问具有实体框架的桥梁。 – MIKE

+0

@MIKE非常感谢你,不幸的是你没有发表一个答案只是一个评论,所以我无法选择你作为正确的答案 –

回答

1

好吧,我猜如果你不需要除ProductCategory中的键外的任何东西,你可以使用内置的方式。 如果您需要与ProductCategory一起存储的其他信息,也许您需要版本控制或某些高级功能,则可以使用自定义联合实体。

也看到这些问题的答案:

Adding 0..1 relation in EF code first

EF 1 to 1..* relationship

相关问题