我有几个这样的课程设置:
成员 (摘要)
- 财产1
- 财产2(等)
组织成员:成员
- 财产3
- 财产4(等)
私人会员:会员
- 财产5
- 财产6(等)
然后,我有三个以相同方式构造的数据库表 - 两种类型的成员实体共有的数据存储在 Member 表中,特定于 OrganizationMember 的数据存储在相应的表中,特定于 PrivateMember 的数据存储在相应的表中。Member 表的 Id 与其他两个表的 Id 相同,因为它是 1-1 关系 - 只是一种分类,其中每种类型都有特定的东西。在这里可能无关紧要,但没有什么可以直接成为会员 - 他们必须是两种类型之一。
当我设置我的映射时(使用 Fluid - 使用 EF 的所有内容都是手动编码的,没有设计师也没有 EDMX 文件),如果我告诉 OrganizationMember 忽略从 Member 继承的属性,我会得到“你不能在属性上使用 Ignore 方法'[PropertyName] '在类型 '[TypeName]' 上,因为此类型继承自映射此属性的类型 '[BaseType]'。要从模型中排除此属性,请在基本类型上使用 NotMappedAttribute 或 Ignore 方法。错误。但是,当我告诉它不要忽略从 Member 继承的那些属性时,它会引发错误(“从 [...] [TypeName] 开始的映射片段的问题正在映射到表 Member 中的相同行。映射条件可用于区分这些类型映射到的行。”)。
我会假设这是一个非常标准的设置,但 EF 真的不是很好。有什么建议么?