我可能遗漏了一些内容,但实体框架4生成的SQL Server 2008 R2数据库缺少我通过EF设计器配置的默认值。
任何想法我可能做错了什么?
答案 0 :(得分:12)
原因是您可以在概念模型中设置的默认值和数据库默认值完全不相关。
让我们考虑一个典型的情况,你已经拥有一个数据库,该数据库在列上设置了默认值,同一个标记,默认情况下不会在商店模式或实体本身中获取默认值。
因此,如果为将用于生成数据库模式的模型中的实体属性定义默认值,请务必注意,您为实体属性定义的默认值都不会被推送到数据库。
但是,值得一提的是,默认的EntityObject T4代码生成模板和默认的POCO实体模板都将在生成的类中设置该属性的默认值。
您可以通过仔细查看VS2010生成的 yourModelName.edmx.sql 文件来验证这一点,点击“从模型生成数据库...”。如你所见,其中没有这样的东西:
添加约束默认值“默认值”FOR YourColumnName