3

我正在构建一个包含许多不同对象(表)的应用程序,其中许多对象需要与“属性”对象建立一对多的关系。例如,我可以有五个不同的对象——A、B、C、D、E——并且每个对象都需要一个 Attributes 属性——A.Attributes、B.Attributes 等。

我的问题是,在 EF Code First 中构建它的最佳方式是什么?这个 Attribute 类最终可能有 15-20 个与之有关系的不同类。

目前,“父”类之一的配置如下所示:

        HasMany(rdp => rdp.Attributes)
            .WithOptional()
            .WillCascadeOnDelete();

但是,这将在属性表​​上创建一个外键列(例如,“A_Id”、“B_Id”等)。因此,如果我有 20 个具有属性的不同类,则 Attribute 表将有 20 个不同的外键。

有没有更好的方法来构建这个?

4

1 回答 1

2

您可以引入映射到自己的表的 AttributeList 类型。即,您可以将列表建模为实体。

A、B、C、D、E 与 AttributeList 具有一对一的关联,外键与 A、B、C、D 和 E 类上的 AttributeList 相关。

每个 AttributeList 对象包含许多属性,或者换句话说,从 AttributeList 到 Attribute 存在一对多的关系。

现在你有一个与属性一对多的单一类型,你只需要一个外键到属性上的 AttributeList。

于 2013-10-01T06:22:09.047 回答