昨天我问了这个问题:Generating a SQL view from EF 6.1 code first
我认为一切正常,但在生成新迁移时仍然存在一些问题。当我生成一个新的,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字段不等于视图字段。但是在数据库中,字段是正常的:varchar(255)not null在我的代码中它是一个最大长度为(255)的字符串。
所以我不知道如何避免这一代人? 有什么想法吗?
编辑:
我唯一理解的是MyView2.Price字段,我的代码中是十进制(标准18,2)。和数据库中的小数(19,4)。这样可以在更改模型时修复。但是琴弦??仍然不知道..
答案 0 :(得分:0)
已解决:解决Decimal问题将自动解决所有其他问题。
似乎删除并创建了id以使其可以重命名? 并防止错误。
我仍然不确定..为什么字符串问题在哪里创建..
注意:正如您在上一篇文章中所看到的,我从现有的数据库中生成了我的模型。 在添加任何新迁移之前,请务必删除SQL视图模型中的所有[Key]属性。这似乎是解决方案的一部分