EF的CodeFirst模型修改时,服务器上的数据库怎么更新

EF的CodeFirst模型修改时,服务器上的数据库怎么更新,第1张

选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。

在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点

右键单击【数据库】节点,从d出来的快捷菜单中选择【新建数据库】命令。

执行上述 *** 作后,会d出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,

在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。

在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。

切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

切换到【文件组】页,在这里可以添加或删除文件组。

完成以上 *** 作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。

如果你还在为

支持xxx上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库

找到你的数据库上下文所在的类库(一般都是写在项目中的model中,也有的独立model类库)

打开Nuget 程序包管理控制台

输入:Enable-Migrations 回车

如果正确的话 则显示已为项目 xxx启用 Code First 迁移。

我在这里说下 几种有可能出现的错误:

1.No context type was found in the assembly xxx

在当前项目中 没有找到数据库上下文,也就是DbContext 继承的的 "数据库.cs"

2.The EntityFramework package is not installed on project xxx

当前项目已经找到了数据上下文,但是没有EntityFrameWork 需要安装输入 install-package entityframework(手大的 不知道对不对)

基本就这两个问题,如果安装成功则在项目中 出现Migrations文件夹,里面会记录每次数据迁移所发生的变化。

非常好用,不用再删除数据库 重新生成 数据丢失等问题。

常用语句 :enable-Migrations -Force 替换迁移数据文件 update-database 更新 add-migration 添加新的更新文件

什么叫“强制更新一个实体”?

EF本身就是C#中实体和DB的映射,更新实体其实就是更新数据库。

1、

如果是DB FIRST,那么你的实体是跟着DB走的,你必须更新表结构,然后在VS中重新生成模型,实体才会跟着变。

如果只把entity字段改了,那么运行的时候会报错的。

2、如果是codefirst,那么你更新实体之后,EF会更新你的DB结构, 这时候你就需要去选择迁移数据还是重建了。 迁移的教程参考MSDN,命令比较复杂。 重建只需要在初始化器里override方法: DropDatabaseIfModified(如果结构改变则自动重新生成数据库)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10059645.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存