EDMX更新实体后出现键值映射问题

近期做项目的EF改版时,在DB(ORACLE)中的表里添加一个新的PK,去除原有的PK。

在DB已添加完成操作,但这时在EDMX里进行从DB更新到EF里,更新完成后就发生如下错误提示:

Error 6 Error 3002: Problem in mapping fragments starting at line 8140:Potential runtime violation of table EXAMINE_MAIN's keys (EXAMINE_MAIN.MID): Columns (EXAMINE_MAIN.MID) are mapped to EntitySet EXAMINE_MAIN's properties (EXAMINE_MAIN.MID) on the conceptual side but they do not form the EntitySet's key properties (EXAMINE_MAIN.EXAMINEID, EXAMINE_MAIN.MID).
D:\130Project\eMBS\Center\EFDataProvider\OralceEntities\Entities.edmx 8141 8186 EFDataProvider

中文意思大概是:

OralceEntities.Entities.msl(806,10) : 错误 3002: 映射从第 806 行开始的片段时有问题:表 EXAMINE_MAIN 的键(EXAMINE_MAIN.MID)具有潜在运行时冲突: 列(EXAMINE_MAIN.MID)映射到概念端 EntitySet EXAMINE_MAIN 的属性(EXAMINE_MAIN.MID),但是它们未形成 EntitySet 的键属性(EXAMINE_MAIN.EXAMINEID, EXAMINE_MAIN.MID)。

 

处理方案:

  导致原因:PK对应在EDMX里的属性为实体键,实际上此时的这张表已存在两个实体键(也就是说存在了两个PK),在T4模板了自然也会生成两个PK的值。这样就会发生冲突了!

  知道这个原因后估计我不说你也知道该怎么处理了吧?

  很简单,找的更新后的这张实体表,找出原来的PK ,按F4,把实体键设置为False,再重新编译即可。(附图)

  

  

转载于:https://www.cnblogs.com/byvar/p/3644558.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值