近期做项目的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更新实体后出现键值映射问题的更多相关文章

  1. 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为

    在日常使用Entity Framework中,数据更新通常会用到.下面就简单封装了一个DBContext类 public partial class EFContext<T> : DbCo ...

  2. EntityFramework 外键值映射

    如果在 EF OnModelCreating 中配置了实体外键映射,也就是 SQL Server 中的 ForeignKey,那么我们在添加实体的时候,主实体的主键值会自动映射到子实体的外键值,并且这 ...

  3. Java实现 LeetCode 677 键值映射(字典树)

    677. 键值映射 实现一个 MapSum 类里的两个方法,insert 和 sum. 对于方法 insert,你将得到一对(字符串,整数)的键值对.字符串表示键,整数表示值.如果键已经存在,那么原来 ...

  4. 附加类型“UniversalReviewSystem.Models.ApplicationUser”的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值

    在使用asp.net Identity2 的 UserManager RoleManager 时,同时还有其他仓储类型接口,能实现用户扩展信息的修改,用户注册没有问题.当修改用户信息时,出现了如下异常 ...

  5. [Swift]LeetCode677. 键值映射 | Map Sum Pairs

    Implement a MapSum class with insert, and sum methods. For the method insert, you'll be given a pair ...

  6. 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 ...

  7. Map泛型集合-国家中文和英文的键值映射

    package collection; import java.util.HashMap; import java.util.Map; public class Test5 { public stat ...

  8. 附加类型的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值

    var list= DAL.LoadEntities(x => x.OrderCode == orderCode).AsNoTracking().ToList().FirstOrDefault( ...

  9. EF Core中怎么实现自动更新实体的属性值到数据库

    我们在开发系统的时候,经常会遇到这种需求数据库表中的行被更新时需要自动更新某些列. 数据库 比如下面的Person表有一列UpdateTime,这列数据要求在行被更新后自动更新为系统的当前时间. Pe ...

随机推荐

  1. [POJ2084]Game of Connections

      Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7888   Accepted: 3965 Description Thi ...

  2. [CCC 1996 01]Deficient, Perfect, and Abundant

    CCC加拿大高中生信息学奥赛 其余来源 CODEVS[3312]——CCC 1996 01 Deficient, Perfect, and Abundant ——http://codevs.cn/pr ...

  3. iOS真机调试——Certificates, Identifiers &Profiles 简介

    Certificates, Identifiers &Profiles 简介 每次到这个页面,我都不知道这几个选项是干啥的,我相信有很多同学跟我一样,所以首先我们就来先介绍下Developer ...

  4. FZU Problem 2125 简单的等式

    思路:x绝对小于根号n,再由s(x,m)可以缩小范围.1e9十六进制大约算出每位和相加100左右.这种题直接判断范围再暴力. #include<stdio.h> #include<s ...

  5. hive0.11的编译/安装/配置

    一.获取hive 0.11文件 1.直接在apache网站下载release版 2.自己下载源码编译.方法: git clone https://github.com/amplab/hive.git ...

  6. redis ltrim命令

    LTRIM key start stop 相关命令 BLPOP BRPOP BRPOPLPUSH LINDEX LINSERT LLEN LPOP LPUSH LPUSHX LRANGE LREM L ...

  7. 【原创】关于hashcode和equals的不同实现对HashMap和HashSet集合类的影响的探究

    这篇文章做了一个很好的测试:http://blog.csdn.net/afgasdg/article/details/6889383,判断往HashSet(不允许元素重复)里塞对象时,是如何判定set ...

  8. HW1.2

    public class Solution { public static void main(String[] args) { System.out.println("Welcome to ...

  9. Hadoop InputFormat浅析

    本文转载:http://hi.baidu.com/_kouu/item/dc8d727b530f40346dc37cd1 在执行一个Job的时候,Hadoop会将输入数据划分成N个Split,然后启动 ...

  10. 第四届CCF软件能力认证(CSP2015) 第五题(最小花费)题解

    [问题描述] C国共有$n$个城市.有$n-1$条双向道路,每条道路连接两个城市,任意两个城市之间能互相到达.小R来到C国旅行,他共规划了$m$条旅行的路线, 第$i$条旅行路线的起点是$s_i$,终 ...