EntiyFramework一大特点就是Code first,但难免有时候因特殊原因需要Update model from database。此次使用该功能时遇到两个问题,且记之。

[问题一]

  Error 3027: No mapping specified for the following EntitySet/AssociationSet - XXXXXXX.

[起因]

   在数据库新建一张表,并使用Update model from database功能同步到EF, Add Association后,发生该错误。

[说明]

   XXXXXXX代表关系名称,例如一个外键关系:FK_Bug_TestCase。

[原因]

  在EF中Add Association时,.edmx文件并未被同步创建。

[解决方案]

  Step1:右键.edmx文件,以XML Editor方式打开,如下图:

  Step2:ctrl+F 搜索,找到名称为XXXXXXX的Asscoiation节点,以FK_Bug_TestCase为例,并添加<ReferentialConstraint></ReferentialConstraint>节点,并设置Principal的Role属性为主键表名,子节点PropertyRef的Name属性为主键表用作外键的字段名;设置Dependent的Role属性为外键表名,  子节点PropertyRef的Name为外键字段名。如下图所示:

  Step3:保存即可。

 

[问题二]

  Unable to update the EntitySet 'Bug' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.

[起因]

  在问题一已解决的前提下,对数据库进行更新是引起。

[原因]

  使用Update model from database功能时,EF在.edmx文件里创建了< DefiningQuery ></ DefiningQuery >节点。DefiningQuery 节点的作用,MSDN解释如下:A defining query is commonly used to provide functionality similar to that provided by a database view, but the view is defined in the model, not the database.

[解决方案]

  Step1:同问题一Step1,以XML Editor方式打开.edmx文件。

  Step2:ctrl+F 搜索,找到名称为DefiningQuery的节点(其实一眼就可以看出来它所在EntitySet跟别的EntitySet的不同,用的时候就看到了),并删除。此外对其所在EntitySet节点的Store:Schema属性的Store:命名空间去掉,并删除Store:Name属性。如下图所示:

  修改前:

修改后:

  Step3:保存即可。

转载于:https://www.cnblogs.com/yuanlb/archive/2013/04/18/3029238.html

EntiyFramework :Update model from database引起的两个问题相关推荐

  1. Oracle创建Database Link的两种方式

    Oracle数据库如何创建Database Link呢?本文我们主要就介绍一下这部分内容,Oracle数据库创建Database Link有两种方式,一种是通过菜单,一种是通过SQL. 创建一个dbl ...

  2. You can't update model without Primary Key

    com.jfinal.plugin.activerecord.ActiveRecordException: You can't update model without Primary Key, id ...

  3. mysql update 锁_Mysql心路历程:两个”log”引发的”血案”

    今年开始,自己开始修炼储存与消息相关的技术"内功",想着在当下的开发工作与未来的路途发展中,这两大块是无论如何都无法避开的,所以就开始加强:Mysql.redis与Mq.Mysql ...

  4. django model filter_Django分表的两个方案

    由来 知乎上的一个问题:Django 分表 怎么实现? 这个问题戳到了Django ORM的痛点,对于多数据库/分库的问题,Django提供了很好的支持,通过using和db router可以很好的完 ...

  5. 【小白学习keras教程】八、Sequential Model和模型函数API两种模型建立方法

    @Author:Runsen 文章目录 Load dataset Sequential Model API 方法1 方法2 模型函数API 单输入输出 合并图层 1.连接 2. add, subtra ...

  6. python做值班表预测_Django model一张表中两个字段设置外键参考另一张表两个字段...

    class products(models.Model): MODE_CHOICES=(('week','周'),('day','日')) productname=models.CharField(m ...

  7. 使用classwizard时提示clw文件出错 (cannot update the classwizard database)

    VC++中,自动生成的文件中, .clw ClassWizard信息文件,实际上是INI文件的格式, 有时候ClassWizard出问题,手工修改CLW文件可以解决. 如果此文件不存在的话,每次用Cl ...

  8. Entity Framework — ( Database First )

    什么是Entity Framework Entity Framework是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.将数据存储从域对象自动映射到关系 ...

  9. Entity Data Model (EDM) 深入分析, Part 3

    EntityClient 实体框架(Entity Framework)在ADO.NET 3.5 提供程序的基础上引入新的 ADO.NET 提供程序 EntityClient.Entity-Client ...

最新文章

  1. Json在Java后台的操作
  2. 【oracle笔记3】多表查询
  3. Annotation注解(有源代码)
  4. 离散度计算公式 python_被多种离散化场景困扰?8种python技巧!让数据处理更简单...
  5. c# uri 取文件名_asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码...
  6. opencv 梯度幅值_opencv3/C++ HOG特征提取方式
  7. 完善Library的管理方式
  8. 国家标准标点符号用法
  9. tar 解压_关于Ubuntu下解压tar.xz方法记录
  10. 一些实用的编程模式 | Builder模式能用来解决什么问题?
  11. 怎么删除用户_小米手机如何恢复最近删除的便签 - 学显
  12. 详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
  13. 82. Session 应用
  14. 全国计算机等级考试在线报名,全国计算机等级考试网上报考具体流程
  15. 图像检索算法 TODO
  16. http、https、tcp三次握手,四次挥手学习笔记
  17. Latex排版图片样式
  18. 一文详解GATK-HaplotypeCaller 变异检测原理和实战
  19. word2019使一级标题为第一章,二级标题为1.1的格式
  20. 每周一喂丨图说WiFi安全

热门文章

  1. Object Tracking using OpenCV (C++/Python)(使用OpenCV进行目标跟踪)
  2. AtCoder Grand Contest 023 C - Painting Machines
  3. 实现Repeater控件的记录单选(二)
  4. oracle知识博客链接
  5. [wikioi]奇怪的梦境
  6. CSS的历史与工作原理
  7. Quartz实现定时功能 job.xml文件的配置
  8. spring 多线程 事务的实际应用场景
  9. HSSFCellStyle.ALIGN_CENTER报错
  10. 小米5安卓使用微信X5 Blink内核调试