EF 6.1和保持观点

本文关键字:观点 EF | 更新日期: 2023-09-27 17:57:38

昨天我问了一个问题:从EF 6.1代码第一个生成SQL视图

我认为一切都很好,尽管在生成新的迁移时我仍然有一些麻烦。当我生成一个新的视图时,EF看到了它想要更改的视图中的一些更改或不规则性。但是,据我所知,视图的列c.q.主键是不可更改的吗?

 DropPrimaryKey("dbo.myView1");
 DropPrimaryKey("dbo.myView2");
 AlterColumn("dbo.myView1", "Name", c => c.String(maxLength: 255, unicode: false));
 AlterColumn("dbo.myView1", "SecondName", c => c.String(maxLength: 255, unicode: false));
 AlterColumn("dbo.myView1", "MultipleNames", c => c.String(maxLength: 255, unicode: false));
 AlterColumn("dbo.myView2", "Price", c => c.Decimal(nullable: false, precision: 18, scale: 2));
 AlterColumn("dbo.myView2", "TypeName", c => c.String(maxLength: 255, unicode: false));
 AddPrimaryKey("dbo.myView1", "Id");
 AddPrimaryKey("dbo.myView2", "Id");

有人知道解决这个问题的办法吗?

一开始我以为MyView1.Name字段不等于view字段。但在数据库中,字段是一个正常的:varchar(255)在我的代码中不是null en,它是一个最大长度为(255)的字符串。

所以我不知道如何避免这一代人?有什么想法吗?

编辑:

我唯一理解的是MyView2.Price字段,它在我的代码中是一个十进制(标准的18,2)。以及数据库中的小数(19,4)。因此,在更改我的模型时可以修复此问题。但是琴弦??还是不知道。。

EF 6.1和保持观点

已解决:解决小数问题将自动解决所有其他问题。

似乎删除并创建了id,以便可以进行重命名?并防止出现错误。

不过我还是不确定。。为什么创建字符串问题。。

注意:正如你在上一篇文章中看到的,我从一个现有的数据库中生成了我的模型。在添加任何新的迁移之前,请确保删除SQL视图模型中的所有[Key]属性。这似乎是解决方案的一部分