实体框架和默认值

时间:2017-01-16 13:42:35

标签: c# sql sql-server entity-framework

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

3 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:5)

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

对于数据库优先,设计人员会忽略您的SQL默认值,您必须告诉它将您的列视为已计算:选择您的实体 - >去列 - >属性 - >将StoreGeneratedPattern设置为Computed(默认为None)

答案 2 :(得分:0)

作为一种解决方法,我认为您可以使用数据库触发器将列值更新为默认值。