实体框架 – EF 6 Code First迁移警告或阻止破坏性更新
发布时间:2020-12-16 07:01:32 所属栏目:asp.Net 来源:网络整理
导读:问题:是否存在在运行迁移脚本时警告无意中丢失数据的设置. 自4.1以来我一直在使用代码优先迁移,但是在测试项目中进行实验时遇到了我没想到的行为.也许我没有跟上新功能. 说我有一个简单的模型: public class Customer{ public int Id { get; set; } public
问题:是否存在在运行迁移脚本时警告无意中丢失数据的设置.
自4.1以来我一直在使用代码优先迁移,但是在测试项目中进行实验时遇到了我没想到的行为.也许我没有跟上新功能. 说我有一个简单的模型: public class Customer { public int Id { get; set; } public string Name { get; set; } public string Address { get; set; } public string City { get; set; } } 和背景: public class CustContext : DbContext { public CustContext() : base("DefaultConnection") { } public DbSet<Customer> Customers { get; set; } } 我已经启用了迁移,创建了初始迁移,按如下方式更新了数据库,然后用数据填充了表. enable-migrations add-migration initial update-database 然后我将Address的名称更改为HomeAddress.这是迁移脚本: add-migration HomeAddress public partial class HomeAddress : DbMigration { public override void Up() { AddColumn("dbo.Customers","HomeAddress",c => c.String()); DropColumn("dbo.Customers","Address"); } public override void Down() { AddColumn("dbo.Customers","Address","HomeAddress"); } } 这是配置脚本: internal sealed class Configuration : DbMigrationsConfiguration<CodeFirstMigrations.Model1.CustContext> { public Configuration() { AutomaticMigrationsEnabled = false; AutomaticMigrationDataLossAllowed = false; } protected override void Seed(CodeFirstMigrations.Model1.CustContext context) { } } 当我运行update-database命令时,我完全期望得到一个错误:“无法完成迁移,因为它会导致数据丢失……”我实际上在我自己的项目中看到了很多错误. 但相反,它愉快地删除了(填充的)Address列,并创建了一个新的HomeAddress列. 我认为必须有一个配置设置来控制该行为,但我能找到的只是AutomaticMigrationDataLossAllowed,它显然只适用于自动迁移. 我忽略了什么吗? 解决方法
这已被提出作为一个问题,但被拒绝为“按设计”.
请参阅错误here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用xml类型在SQL Server 2005中存储XSLT?
- asp.net-mvc – ASP.NET MVC – 用于ICollection的EditorTe
- asp.net-core – ASP.NET核心中的Angular CLI,具有热模块替
- asp.net-mvc-4 – 如何获取没有隐藏输入的AntiForgeryToken
- asp.net-mvc – 社交网络开发,Orchard或Composite C1的最佳
- asp.net-mvc – 在实时服务器上使用oauth登录失败
- asp.net – Microsoft重写模块 – 强制www url或从url删除w
- ASP.NET Chart StripLine在GridLine上
- asp.net – 使用httpModule手动启用压缩
- ASP.NET Core 2.0和Angular 4.3文件上传进度
推荐文章
站长推荐
热点阅读