实体框架和默认值

Was*_*jwa 5 c# sql sql-server entity-framework

在Entity Framework中,默认值约束功能尚未实现,我自己尝试了,然后在这里阅读它.所以,我想知道获得这个的最佳方法是什么.我应该使用存储过程还是触发类似的东西?并且在实体框架中添加了更好或更新的东西,因为我不想在代码中明确地处理它.这将是一个很大的帮助.

Was*_*jwa 7

在Database First方法中,实体框架忽略默认值约束.但是,实体框架显示列的默认值属性.在Model.edmx查看器中选择一个实体 - >转到列 - >属性 - >默认值.在其中添加列的默认值,就是这样.

就我而言,我通过代码更新了Model.edmx文件.代码从Db获取默认约束,然后更新Model.edmx文件中的概念模型,因为我有大量的默认值列.

默认值约束问题在所有版本的Entity Framework中持续存在,直到EF6,并且似乎在Entity Framework 7中得到解决


Ale*_*xei 5

最简单的方法是从C#初始化您的属性,从而确保默认值.

对于Database First,设计人员会忽略您的SQL默认值,您必须告诉它将您的列视为Computed:选择您的实体 - > go the column - > properties - >将StoreGeneratedPattern设置为Computed(默认为None)

  • 我最近注意到的最重要的事情是,如果代码更新它,它不会保存值,只会存储默认值.还尝试了StoreGeneratedPattern的"Identity"选项几乎以相同的方式工作,但它只在插入时创建默认值,并且在此Entity Framework上不允许更新"Identity"列的值. (2认同)