ADO.net Entity framework Model-fisrt 后期更改数据库扩展
2010-08-08 09:23 Creative dream 阅读(1516) 评论(4) 编辑 收藏 举报本文解决ADO.net Entity framework Model-fisrt 后期更改数据库扩展,了解EDM,都了解EDM提供由模型生成数据库功能,现存在一个问题,就是在我们生成数据库之后,如果需要后期更改数据库结构,EDM当前版本是不支持更改模型,再反向更新到数据库的,只能通过数据库来更新EDM。相比之下,我们会觉得还是通过EDM模型更改数据库方便,以下是解决方法。
- 开发工具:VS 2010 EN
- 开发语言:Visual C#
- ADO.NET Entity Data Model
这里有一个更改目标数据库结构的插件:Entity Designer Database Generation Power Pack
下载安装完后成,生成数据库的时候,生成DDL部分界面更改下图显示:
下面演示添加字段和添加数据表。
当前数据库结构如下图:
1.添加字段演示
在Customers实体中添加Question:String 字段
保存当前更改,右击模型空白处,在右键菜单中选择Generate Database from Model...(从模型生成数据库),如下图
在弹出窗口中选择Generate Migration T-SQL And Deploy(在左侧列表中选中“Generate Migration T-SQL And Deploy”,点击右侧“Select Workflow for Database Generation”按钮),下图所示:
点击“Next>”,进度条显示处理进度。
点击“Finish”完成,这时刷新“Customers”表发现所有列中并没有Question列,哪里出错了?还是扩展根本没有起到作用?这里是因为在向已存在表(含有数据)中添加字段,该字段必须为可空类型才可以正常添加,修改Question字段为可空类型,再重复以上操作。
再刷新“Customers”表发现Question列已被添加上了。
2.添加数据表
添加VIP表,包含Id、Name两列
重复添加字段中的方法,完成后刷新数据库中的表
我们看到新建的实体VIP,而对应到数据库中为VIPs,这个是由Entity Set Name决定的,如下图:
注:1.添加字段时如果已存在的表中含有数据,添加的目标字段必须为空,空表不影响。
2.扩展只支持添加字段和数据表,不支持删除操作