EntiyFramework :Update model from database引起的两个问题
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引起的两个问题相关推荐
- Oracle创建Database Link的两种方式
Oracle数据库如何创建Database Link呢?本文我们主要就介绍一下这部分内容,Oracle数据库创建Database Link有两种方式,一种是通过菜单,一种是通过SQL. 创建一个dbl ...
- You can't update model without Primary Key
com.jfinal.plugin.activerecord.ActiveRecordException: You can't update model without Primary Key, id ...
- mysql update 锁_Mysql心路历程:两个”log”引发的”血案”
今年开始,自己开始修炼储存与消息相关的技术"内功",想着在当下的开发工作与未来的路途发展中,这两大块是无论如何都无法避开的,所以就开始加强:Mysql.redis与Mq.Mysql ...
- django model filter_Django分表的两个方案
由来 知乎上的一个问题:Django 分表 怎么实现? 这个问题戳到了Django ORM的痛点,对于多数据库/分库的问题,Django提供了很好的支持,通过using和db router可以很好的完 ...
- 【小白学习keras教程】八、Sequential Model和模型函数API两种模型建立方法
@Author:Runsen 文章目录 Load dataset Sequential Model API 方法1 方法2 模型函数API 单输入输出 合并图层 1.连接 2. add, subtra ...
- python做值班表预测_Django model一张表中两个字段设置外键参考另一张表两个字段...
class products(models.Model): MODE_CHOICES=(('week','周'),('day','日')) productname=models.CharField(m ...
- 使用classwizard时提示clw文件出错 (cannot update the classwizard database)
VC++中,自动生成的文件中, .clw ClassWizard信息文件,实际上是INI文件的格式, 有时候ClassWizard出问题,手工修改CLW文件可以解决. 如果此文件不存在的话,每次用Cl ...
- Entity Framework — ( Database First )
什么是Entity Framework Entity Framework是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.将数据存储从域对象自动映射到关系 ...
- Entity Data Model (EDM) 深入分析, Part 3
EntityClient 实体框架(Entity Framework)在ADO.NET 3.5 提供程序的基础上引入新的 ADO.NET 提供程序 EntityClient.Entity-Client ...
最新文章
- Json在Java后台的操作
- 【oracle笔记3】多表查询
- Annotation注解(有源代码)
- 离散度计算公式 python_被多种离散化场景困扰?8种python技巧!让数据处理更简单...
- c# uri 取文件名_asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码...
- opencv 梯度幅值_opencv3/C++ HOG特征提取方式
- 完善Library的管理方式
- 国家标准标点符号用法
- tar 解压_关于Ubuntu下解压tar.xz方法记录
- 一些实用的编程模式 | Builder模式能用来解决什么问题?
- 怎么删除用户_小米手机如何恢复最近删除的便签 - 学显
- 详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
- 82. Session 应用
- 全国计算机等级考试在线报名,全国计算机等级考试网上报考具体流程
- 图像检索算法 TODO
- http、https、tcp三次握手,四次挥手学习笔记
- Latex排版图片样式
- 一文详解GATK-HaplotypeCaller 变异检测原理和实战
- word2019使一级标题为第一章,二级标题为1.1的格式
- 每周一喂丨图说WiFi安全
热门文章
- Object Tracking using OpenCV (C++/Python)(使用OpenCV进行目标跟踪)
- AtCoder Grand Contest 023 C - Painting Machines
- 实现Repeater控件的记录单选(二)
- oracle知识博客链接
- [wikioi]奇怪的梦境
- CSS的历史与工作原理
- Quartz实现定时功能 job.xml文件的配置
- spring 多线程 事务的实际应用场景
- HSSFCellStyle.ALIGN_CENTER报错
- 小米5安卓使用微信X5 Blink内核调试