强文我在数据库表中有一个自动生成的字段,但此字段未添加到模型中。该模型在.net标准和框架项目之间共享。但是,在.net框架中,我需要将此字段添加到模型中以插入或更新。如果不是,我将获得 DbUpdateConcurrencyException 。在核心版本中,没有问题,并且它可以在不放置字段的情况下工作,另一方面,在更新时出现问题的字段。
该字段是一个标识字段,属性设置如下 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
如果 DatabaseGeneratedOption.computed 或在异常触发器后删除 的 DbUpdateConcurrencyException
如果映射到 DatabaseGeneratedOption.None ,则会发生以下错误 无法在表格中插入标识列的显式值'检查'当IDENTITY_INSERT设置为OFF
时有人能告诉我如何在数据库上下文中以编程方式添加字段,以便我可以从模型中删除该属性,还是可以解决任何问题?
答案 0 :(得分:0)
如果您是架构优先方法,则可以执行以下步骤:
1.尝试在表格上创建非身份主键列。
2.从EDMX中删除实体模型。
3.返回并将PK身份设置为true。
4.通过添加实体来更新EDMX。
答案 1 :(得分:0)
我刚刚将模型属性更改为DatabaseGeneratedOption.computed用于该属性,而.Net Framework端我用DatabaseContext中的Identity覆盖该属性