EF实体模型的更新

摘要 解决前期数据库优先添加的实体,然后数据库表结构发生变化后,导致代码操作EF插入更新数据失败问题

EF 数据库更新模型

相比大家在使用实体操作数据库的时候,都是采取数据库优先,手动添加实体模型。但是随着后期需求的更改和变化,数据库的结构都会有很大的变化。比如主键缺少和改变,字段的删减。都会导致EF操作失败。很多人都是采用直接将整个.edmx文件删除掉,然后重新加载。这样做太麻烦了。下面介绍更新模型的正确姿势。

步骤一.双击.edmx文件,会出现所有模型的视图

点击空白处,右键,选择:从数据库更新模型选项,选择刷新或者添加删除。根据你自己的需求来。

那么问题来了,你可能发现,即使这样做了,还是没有变化,该出错的地方还是错的。那么进行第二步动作。

    步骤二、右击空白处,选择“验证”选项。这样所有的更新都会得到验证。才会有效

当然若果验证过程中,也有提示错误,如,字段没有得到映射等问题,那么进行步骤三。

步骤三。找到出现映射无效的那张视图表,选中它

右键

选择表映射,然后选择与之相应的表,这样就完成了映射。如图

若果及时选择了对应的依然报错,提示主键冲突问题。那就是左右对应的主键不一致导致的。进行步骤四。

步骤四.选择对应的视图

右击,选择从模型中删除选项。然后重新选择从数据库更新模型,添加刚刚删除掉的表,即可。

时间: 2024-12-15 06:35:21

EF实体模型的更新的相关文章

EF Code First更新数据库时报错:provider: SQL Network Interfaces, error: 26

在使用EF Code First更新数据库时报如下错误: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错) 以为是Sql Server的配置问题,作如下尝试: →打开Sql Server配置管理器,即"Sql Server Configuraiotn

EF安装和更新数据库

先卸载EF:Uninstall-Package EntityFramework -Force 在安装EF5.0:Install-Package EntityFramework –Version 5.0.0 EF Code  First中更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269): 1. Enable-Migrations 创建数据库脚本 2. 修改实体类 3. Add-Migration XXX 创建数据库更新脚本 ,其中XXX为任意

EF没有同步更新(转)

不知道这算不算一个bug,当你新建一个从数据库生成的edmx时,他能正确的生成所有的tt文件,但是当你从数据库更新表结构时,他不能正确的更新tt文件,以建立Model1.edmx为例,在解决方案中展开Model1.edmx, 右键Model1.Context.tt,然后点击运行自定义工具. 然后再右键Model1.tt,也点击运行自定义工.经过这两步,就会跟据edmx结构正确的生成文件了 还有种办法,执行以上第1步,第2步改为删除Model1.tt,在edmx设计器中右键-->添加代码生成项,选

Winform + WCF + EF 实现批量更新

项目结构: 1.客户端:Winform, 2.数据访问:EF4.0(从数据库生成模型-懒人必需这样) 3.DTO:直接使用EF实体 4.服务端:WCF 托管在IIS中采用basicHttp帮定(这样可以客户端的代理类就不需要每次人肉释放了) Winform或asp.net ,MVC中每次一般只操作一条记录或者对多条记录进行相同的操作,这个时候我们知道需要对记录或记录集合进行的是那种CURD. 但是如果直接将获取的记录集合 List<T> 帮定到BindingSource并关联DataGridV

EF Core Model更新迁移

EF Core 迁移 感觉就是以前EF Code First的自动同步数据库功能 内容:在你新增.更新TableModel后,如何自动化的更新DB中的真实Table.以及对这些更改进行一个版本控制. 本文将以一个示例进行简单明了的演示输出.(不会很详细,只记录主要步骤) 当下我们已经有了一个ASP.NET Core的web应用程序,本文我们所关心的只有2个: 1.Model 2.DB Table 当下: Model 最后一个为导航属性,无视. Table 现在我们要在Model/Student.

EF部分字段更新,忽略为null字段

一般的更新代码是这样的 public T Update<T>(T entity) where T : ModelBase { var set = this.Set<T>(); set.Attach(entity); this.Entry<T>(entity).State = EntityState.Modified; this.SaveChanges(); return entity; } 但是有时候有更新的时候,如果为null则不更新这字段,这个时候就会有问题了,这个

安装EF实体模型框架

Data Access and Storage > 学习 > Entity Framework > 开始操作 > 空间 - EF 设计器 本视频和分步演练介绍如何使用实体框架设计器来映射空间类型.另外,还演示了如何使用 LINQ 查询来查找两个位置之间的距离. 本演练将使用 Model First 来创建一个新数据库,但也可以将 EF 设计器与  Database First 工作流结合使用来映射到现有数据库. 空间类型支持在实体框架 5 中引入.注意:要使用空间类型.枚举和表值函

vs2013 EF实体模型无法添加

您的项目引用了最新实体框架:但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧 在vs2013中使用mysql连接entityFramework经常会遇到这个问题:您的项目引用了最新实体框架:但是,找不到数据连接所需的与版本兼容的实体框架数据提供程序.请退出此向导,安装兼容提供程序,重新生成您的项目,然后再执行操作. 在vs中 使用mysql的问题多的会让人蛋疼.在这里给个妥妥的一条龙解说哈. <无耐心看过程讲解的可直接看最下面>   在创建实体模型的时候  数据

EF 4.0 更新数据时候的一个错误及其处理

错误如图: 修改下方法后可以进行更新了.但是中间多了一步查询 /// <summary> /// 更新一个产品分类 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool UpdateBindClass(DataDicContent model) { var entry = DBENT.Entry(mod