EDMX设计中单表映射多实体类及Error 3032错误解决咨询
解决EDMX单表多实体映射Error 3032的方案
这个错误的核心是EF的TPH(单表继承)策略要求必须通过鉴别器条件区分不同实体对应的行,具体操作步骤如下:
1. 准备鉴别器字段
首先确保数据库的MainAcc表存在一个用来区分实体类型的字段:
- 推荐新增专门的鉴别器字段(比如
AccType,int类型,用1表示普通MainAcc,2表示ChildAcc); - 若想用现有字段区分(比如
Type1的特定值),也可以直接使用,但逻辑需清晰。
2. 在EDMX设计器中配置映射条件
- 选中
MainAcc实体,右键打开映射详细信息窗口; - 点击窗口中的「添加条件」,选择鉴别器字段(如
AccType),设置操作符为「等于」,值设为对应MainAcc的标识(如1); - 选中
ChildAcc实体,同样打开映射详细信息窗口; - 添加映射条件:选择同一个鉴别器字段,操作符「等于」,值设为
ChildAcc的标识(如2)。
3. 检查属性映射
- 确认
MainAcc仅映射Id、Type1和鉴别器字段; ChildAcc继承自MainAcc,只需映射Type2、Type3字段,父类字段会自动继承映射规则。
4. 验证修复
保存EDMX文件,重新生成实体模型,Error 3032即可消除。
内容的提问来源于stack exchange,提问作者taufiqullr
相关产品推荐
相关产品推荐

