0

昨天我问了这个问题: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)。所以可以在更改我的模型时解决这个问题。但是字符串??还是不知道。。

4

1 回答 1

0

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

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

不过我仍然不确定..为什么创建字符串问题..

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

于 2014-04-10T07:38:43.037 回答