有什么办法可以更改设置为“ StoreGeneratedPattern = Computed”的字段的值

时间:2019-04-21 14:45:20

标签: c# sql-server entity-framework

我在表中将一个int字段设置为default 0。我将此字段的StoreGeneratedPattern设置为Computed,但是在使用SaveChanges()后无法更改此字段的值。 我在同一问题上发现了这个answer,只是想知道是否有更好的方法可以做到这一点。

修改

这是从数据库(实体框架6)生成的edmx

enter image description here

这是在(从我的应用程序中)向表Intervention添加一些数据并且由于IsDeleted int default 0而将IsDeleted设置为0后的结果

enter image description here

enter image description here

但是尝试了类似的

 db.Interventions.Find(currentInterv).IsDeleted = 1;
 db.SaveChanges();

由于StoreGeneratedPattern = Computed,它无法正常工作

1 个答案:

答案 0 :(得分:0)

对于基于EDMX的EF6,您唯一可以做的就是使用存储查询来更改列值。使用代码优先功能,您可以创建具有不同映射元数据的其他DbContext子类型。

但是IsDeleted可能不应该由StoreGenerated生成。您可以在数据库和实体模型中将其默认设置为0,只需将其声明为int而不是int?