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,再重新编译即可。(附图)

EDMX更新实体后出现键值映射问题的更多相关文章
- 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为
在日常使用Entity Framework中,数据更新通常会用到.下面就简单封装了一个DBContext类 public partial class EFContext<T> : DbCo ...
- EntityFramework 外键值映射
如果在 EF OnModelCreating 中配置了实体外键映射,也就是 SQL Server 中的 ForeignKey,那么我们在添加实体的时候,主实体的主键值会自动映射到子实体的外键值,并且这 ...
- Java实现 LeetCode 677 键值映射(字典树)
677. 键值映射 实现一个 MapSum 类里的两个方法,insert 和 sum. 对于方法 insert,你将得到一对(字符串,整数)的键值对.字符串表示键,整数表示值.如果键已经存在,那么原来 ...
- 附加类型“UniversalReviewSystem.Models.ApplicationUser”的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值
在使用asp.net Identity2 的 UserManager RoleManager 时,同时还有其他仓储类型接口,能实现用户扩展信息的修改,用户注册没有问题.当修改用户信息时,出现了如下异常 ...
- [Swift]LeetCode677. 键值映射 | Map Sum Pairs
Implement a MapSum class with insert, and sum methods. For the method insert, you'll be given a pair ...
- LeetCode 677. Map Sum Pairs 键值映射(C++/Java)
题目: Implement a MapSum class with insert, and sum methods. For the method insert, you'll be given a ...
- Map泛型集合-国家中文和英文的键值映射
package collection; import java.util.HashMap; import java.util.Map; public class Test5 { public stat ...
- 附加类型的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值
var list= DAL.LoadEntities(x => x.OrderCode == orderCode).AsNoTracking().ToList().FirstOrDefault( ...
- EF Core中怎么实现自动更新实体的属性值到数据库
我们在开发系统的时候,经常会遇到这种需求数据库表中的行被更新时需要自动更新某些列. 数据库 比如下面的Person表有一列UpdateTime,这列数据要求在行被更新后自动更新为系统的当前时间. Pe ...
随机推荐
- HDU-1896 Stones
http://acm.hdu.edu.cn/showproblem.php?pid=1896 题意:一个人从0开始走起,遇到偶数个石头就踢.要是同一位置有多个石头,则先扔最重的石头(也就是扔的最近的那 ...
- 安装qc 出现error An error occurred while attempting to connect to the database.
When trying to install mercury quality center starter edition 9.0 on Windows XP media center, I am g ...
- c# 中Intern的作用
1. 函数如下 public static string Intern(string str) { if(str == null) { throw new ArgumentNullException( ...
- 测试一个函数的运行时间(C++)
#include <ctime> static clock_t Start,Finish; Start=clock(); fun(); Finish = clock(); double t ...
- while MyJob = '程序员' do --- 序
因为自己的际遇,忽然想写点什么留在这个世上.也许只是想证明自己活过吧. 所以,这不会是一个过去时的小说,这将是一个接近进行时的记叙.之所以是接近,因为我只有在空余时间,才能记录最近的经历.出于保护隐私 ...
- aix挂载centos 的nfs
centos作为服务器,提供nfs文件系统,aix作为客户端,挂载centos的指定目录 (1)NFS的安装配置:centos 5 : yum -y install nfs-utils portmap ...
- FZU Problem 2125 简单的等式
思路:x绝对小于根号n,再由s(x,m)可以缩小范围.1e9十六进制大约算出每位和相加100左右.这种题直接判断范围再暴力. #include<stdio.h> #include<s ...
- Windows Azure 的虚拟硬盘和文件的相关概念
虚拟硬盘和文件 在 Windows Azure 外部,虚拟硬盘可使用 VHD 或 VHDX 格式.它们还可以是固定的.动态扩展或差异的.Windows Azure 支持 VHD 格式的固定磁盘.固定格 ...
- 我理解的RPC
这两天在学习公司一牛人写的RPC框架,一直都对RPC的概念很模糊,现在稍微清晰了些. rpc定义:RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一 ...
- zabbix 获取不到自定义脚本的值解决
agent端: zabbix 自定义脚本 [root@localhost script]# cat check_ping.sh #!/bin/bash result=$(/usr/local/nagi ...