昨天我问了这个问题:Generating a SQL view from EF 6.1 code first
而且我认为一切正常,尽管在生成新迁移时我仍然遇到一些麻烦。当我生成一个新视图时,EF 会在它想要更改的视图中看到一些变化或不规则。但是,据我所知,视图的列 cq 主键是不可更改的?
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) not null 在我的代码中它是一个最大长度为 (255) 的字符串。
所以我不明白如何避免这一代?有任何想法吗?
编辑:
我唯一理解的是 MyView2.Price 字段,它是我的代码中的小数(标准 18,2)。和数据库中的小数(19,4)。所以可以在更改我的模型时解决这个问题。但是字符串??还是不知道。。