EF code first 实体类修改、添加、删除操作问题

问题描述

EF code first 实体类修改、添加、删除操作问题
EF code First 怎么来更新已存在的数据库结构?

比如:在实体类中我新添加了一个字段、修改字段名称或者类型、删除一个字段 等操作后我怎么更新到已存在的数据库对于表中去。

担心:我在持续开发中,改变了数据库的结构,如果这时候用户已经用以前的版本创建好数据库并且有了许多数据,假使我的修改只增加了一个表的一个可空列。而为此我只能重新创建数据库。请问有没有别的办法,能够把新的数据库结构在不损伤数据的情况下更新到部署好的环境中?

当然我知道自己可以先写SQLScript来提前更新用户环境。但是EF有没有别的办法对于实体类中的字段新增、修改、删除等操作?

解决方案

参考:http://www.cnblogs.com/libingql/p/3330880.html

如果我的回答帮助了您,或者您希望得到小喵进一步的回答,请先采纳这个回答。
如果您觉得小喵的回答在所有回答中不是最好的,也请您在采纳别的大牛哥哥的答案的同时,点一个赞给我吧,您对小喵的鼓励是我前进的动力。
方法是光标移动到右边,点击采纳即可。这个步骤轻而易举,绝不耽误您宝贵的时间。
采纳我的回答还有如下好处:
(1)得到进一步深入的回答
(2)同时增加您的经验和人品,事实证明,采纳率高的用户,专家们更愿意回答你的提问,得到答案的速度和效率也更高。
(3)毫不耗费您的积分

可怜的小喵妹妹拜托您啦。祝您工作顺利~心想事成!

解决方案二:
1、修改数据库初始化策略,使用CreateDatabaseIfNotExists(如果数据库不存在则创建数据库),这样当业务实体类修改后,数据库就不会自动重建了,数据自然保存下来;

2、去数据库中修改实体类对应的相关数据表,保证实体类属性与对应的数据表的字段保持一致。

解决方案三:
http://blog.bossma.cn/csharp/code-first-how-to-upgrade-database/

时间: 2024-09-08 10:15:26

EF code first 实体类修改、添加、删除操作问题的相关文章

JQuery EasyUI学习教程之datagrid 添加、修改、删除操作_jquery

一篇关于JQueryEasyUI学习之datagrid 添加.修改.删除 学习笔记教程有需要了解的朋友可参考本的笔记,批量删除,双击表单修改.选中行修改,增加行修改,再有就是扩展editor的方法,无需废话,直接上代码,代码中的注释写的很详细 <script type="text/javascript" charst="utf-8">var editFlag = undefined;//设置一个编辑标记 //因为layout框架指向href时,只取htm

ASP.NET MVC3 增加、修改和删除操作实例

我们再新建一个表,名字命名为"Contact",打开"AndroidDB.edmx"文件,右键选择"从数据库更新模型".这个前边已经介绍过,这里就不多说,这样在实体层就创建了"Contact"类及它的属性.接下来,我们新添加一个名为"ContactController"的控制器类,用来显示我们的留言表单并实现留言功能.我们先看看Controller中的代码,如下:  代码如下 复制代码 public cla

给jqGrid数据行添加修改和删除操作链接

我这里用的不是jqGrid的自带的编辑和删除操作,我已经把分页导航栏下的编辑,删除,搜索都取消掉了,就是这句$("#list1").navGrid("#pager1",{edit:false,del:false, search:false}), 然后在数据加载完成后,给每行添加了 修改和删除链接 jqGrid完成的事件是gridComplete:function(){}(可以理解为数据都准备好了), 因为从数据库获取到的json数据没有带修改和删除两项,所以在之后的

给jqGrid数据行添加修改和删除操作链接(之一)_jquery

我这里用的不是jqGrid的自带的编辑和删除操作,我已经把分页导航栏下的编辑,删除,搜索都取消掉了,就是这句$("#list1").navGrid("#pager1",{edit:false,del:false, search:false}), 然后在数据加载完成后,给每行添加了 修改和删除链接 jqGrid完成的事件是gridComplete:function(){}(可以理解为数据都准备好了), 因为从数据库获取到的json数据没有带修改和删除两项,所以在之后的

Sql中存储过程的定义、修改和删除操作

1.存储过程的分类 系统存储过程 本地存储过程(用户自定义) 临时存储过程(局部[#].全局[##]临时存储过程) 2.创建存储过程 --选出价格区间的商品信息 create procedure sp_goods_price @minprice float ,@maxprice float as select * from goods where price>=@minprice and price <=@maxprice go 执行存储过程: execute sp_goods_price 2

c#datagridview获取mysql数据并且修改添加删除

问题描述 RT这个帖子貌似和一个帖子一样都是mysql操作的我想要的是如何在datagridview中修改数据的时候就能把修改的数据上传到mysql实现在线修改的功能 解决方案 解决方案二:就是修改的时候同时更新到数据库?解决方案三:1楼是的就是修改完成的时候就上传

【提问】WPF的DataGrid添加删除操作问题

问题描述 最近在学习WPF,做了界面,不知道怎么发图....我只能把基本界面内容描述一下:在一个页面Page上,添加一个DataGrid控件,用来显示文件名.文件大小.文件路径另外有3个Button命令,选择文件.删除文件.发送.点击选择文件,会弹出文件浏览选择框,选择要发送的文件删除文件,删除Datagrid中的一条记录发送,发送文件到目的地.代码如下:publicpartialclassFileSendPage:Page{staticstringsendname;List<FileCommo

php版微信实现公众号菜单添加删除操作

为了以最快方式调试新菜单功能,就用Debug方式去生成新菜单.请参数微信教程2的 wechat-json类.导入该文件后,我们用Debug方式生成一个新菜单: if (isset($argc)  && $argc >= 1 && $argv[0] == __FILE__) {     $client = new WechatJSON(array(         WechatJSON::APP_ID => 'wx78acfe8023sfsd4d51',     

winfor中在treeview操作XML节点添加删除操作问题 求助!!!

问题描述 //删除节点按钮privatevoidbutton3_Click(objectsender,EventArgse){try{TreeNodeactiveNode=treeView1.SelectedNode;if(activeNode==null){return;}#region删除当前选择的节点XmlNodexmlNode=activeNode.TagasXmlNode;XmlNodeparentNode=xmlNode.ParentNode;if(parentNode==null)