常德自助建站seo哈尔滨怎样快速建站
news/
2025/9/23 4:31:01/
文章来源:
常德自助建站seo,哈尔滨怎样快速建站,建个网站公司,广州市政务中心官网现象#xff1a;
在CodeFirst时#xff0c;先写字段与表#xff0c;创建数据库后#xff0c;再添加内容
但字段与表会变更#xff0c;比如改名删除增加等
需求#xff1a;
当表字段变更时#xff0c;同时变更数据库#xff0c;执行数据库迁移 核心命令
Add-Migrat…现象
在CodeFirst时先写字段与表创建数据库后再添加内容
但字段与表会变更比如改名·删除·增加等
需求
当表字段变更时同时变更数据库执行数据库迁移 核心命令
Add-Migration firstMigration
update-database
步骤
打开程序包管理窗口
工具NuGet包管理器程序包管理控制台 Add-Migration代表迁移命令后边参数为名称
输入命令:
Add-Migration firstMigration
但是可能会报错,提示EntityFramework的程序包未安装
Your target project ShangShangQian doesnt reference EntityFramework. This package is required for the Entity Framework Core Tools to work. Ensure your target project is correct, install the package, and try again. NuGet安装下 安装完毕再执行Add-Migration firstMigration
No migrations configuration type was found in the assembly ShangShangQian. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration).
在程序集“ShangShangQian”中找不到迁移配置类型。在Visual Studio中可以使用Package Manager控制台中的“启用迁移”命令添加迁移配置。 再去执行启用迁移”命令
Enable-Migrations 哦……可能得加个数据库上下文就是你继承DbContext的类 再执行下Enable-Migrations -ContextTypeName 加上命名空间与类名
Enable-Migrations -ContextTypeName ShangShangQian.EFCore.DataBaseContext
Checking if the context targets an existing database... System.ArgumentException: The type DataBaseContext does not inherit from DbContext. The DbMigrationsConfiguration.ContextType property must be set to a type that inherits from DbContext
The type DataBaseContext does not inherit from DbContext. The DbMigrationsConfiguration.ContextType property must be set to a type that inherits from DbContext.
正在检查上下文是否以现有数据库为目标。。。
系统ArgumentException类型“DataBaseContext”不是从DbContext继承的。DbMigrationsConfiguration。ContextType属性必须设置为从DbContext继承的类型。 继承了啊奇了怪了…………
Goole下缺个 Microsoft.EntityFrameworkCore.Tools 装下 再执行添加启用迁移命令:
Enable-Migrations -ContextTypeName ShangShangQian.EFCore.DataBaseContext Both Entity Framework Core and Entity Framework 6 are installed. The Entity Framework Core tools are running. Use EntityFramework6\Enable-Migrations for Entity Framework 6. Enable-Migrations is obsolete. Use Add-Migration to start using Migrations.
实体框架核心和实体框架6都已安装。实体框架核心工具正在运行。对实体框架6使用“EntityFramework6\启用迁移”。
“启用迁移”已过时。使用“添加迁移”开始使用迁移。
》去你姥姥的坑我这不回到了起点《
Add-Migration firstMigration
死马当活马医吧执行试试 再跑下更新命令
update-database 表模型变更执行这俩行去测试下 把表和字段增加·删除·试试哦 报错了……
Failed executing DbCommand (0ms) [Parameters[], CommandTypeText, CommandTimeout30] CREATE TABLE Chats ( ChatID INTEGER NOT NULL CONSTRAINT PK_Chats PRIMARY KEY AUTOINCREMENT, FromID INTEGER NOT NULL, ToID INTEGER NOT NULL, Message TEXT NOT NULL, Type INTEGER NOT NULL, IsRead INTEGER NOT NULL, SendTime TEXT NOT NULL, ReadTime TEXT NOT NULL, IsPushFrom INTEGER NOT NULL, IsPushTo INTEGER NOT NULL ); SQLite Error 1: table Chats already exists.
为啥执行更新数据库要创建表呢db已经存在了啊
又坑了我半天……就这样半个世纪过去了 不要灰心猛补各种教学原来是流程问题
问题出在EnsureCreatedAsync这个函数上
首次执行Add-Migration firstMigration命令生成的迁移文件全是创建指令 再执行update-database
会执行创建表的命令
但是之前通过EnsureCreatedAsync函数创建db数据库已有表
所以报错把db 与函数删除就可以了
创建数据库应由数据库迁移命令完成 update database
再此执行就可以 更高级的数据库功能请自行研究吧如回退等
你也去补习下吧 文章写的有点乱
原本更新数据库分分钟的事鼓捣半天主要还是不熟
不过管他呢代码能跑就行
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911360.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!