禁用实体框架的默认值生成(代码优先)

Kor*_*ius 9 c# code-first entity-framework-4

我在数据库中有一个不能为null的列,我想将其设置为在数据库中具有默认值.问题是实体框架似乎自己创建了一个默认值(例如,int => 0),并完全忽略了数据库中的默认值约束.

有没有办法禁用这个实体框架的默认值?

Kni*_*awk 6

我发现您可以使用以下属性修饰字段.

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
Run Code Online (Sandbox Code Playgroud)


Sim*_*gré 3

本质上,实体框架不允许这样做。您必须对其执行一些代码。这个来自另一个网站的答案似乎已经解决了很多人的问题。

他通过做类似的事情来“破解”它(正如他所说):

public partial class YourEntityClass {
     public YourEntityClass() {
         this.PropertyNameWithDefaultValue = default(int);
     }
}
Run Code Online (Sandbox Code Playgroud)

注1:有人提到它可能在EF4中不起作用

个人说明:抱歉我的英语不好,我通常说法语。