C# EF 6.1和维护视图

C# EF 6.1和维护视图,c#,entity-framework,ef-code-first,entity-framework-migrations,entity-framework-6.1,C#,Entity Framework,Ef Code First,Entity Framework Migrations,Entity Framework 6.1,昨天我问了这个问题: 我认为一切都很好,尽管在生成新的迁移时我仍然有一些困难。当我生成一个新视图时,EF看到它想要更改的视图中有一些更改或不规则。但是,据我所知,视图的c.q.列主键是不可更改的 DropPrimaryKey("dbo.myView1"); DropPrimaryKey("dbo.myView2"); AlterColumn("dbo.myView1", "Name", c => c.String(maxLength: 255, unicode: false));

昨天我问了这个问题:

我认为一切都很好,尽管在生成新的迁移时我仍然有一些困难。当我生成一个新视图时,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字段。但在数据库中,该字段是一个普通字段:varchar255 not null en在我的代码中,它是一个最大长度为255的字符串

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

编辑:


我唯一能理解的是MyView2.Price字段,它在我的代码中是一个小数标准18,2。数据库中的小数点是19,4。因此,可以在更改模型时修复此问题。但是弦呢??仍然不知道。

已解决:解决十进制问题将自动解决所有其他问题

似乎删除并创建了id以使重命名成为可能? 以及防止错误

不过我还是不确定。。为什么字符串在创建位置出现问题

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