Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架4和默认值_Entity Framework - Fatal编程技术网

Entity framework 实体框架4和默认值

Entity framework 实体框架4和默认值,entity-framework,Entity Framework,我可能遗漏了一些内容,但Entity Framework 4生成的SQL Server 2008 R2数据库缺少我通过EF设计器配置的默认值 知道我可能做错了什么吗?原因是,可以在概念模型中设置的默认值与数据库默认值完全不相关。 让我们考虑一个典型的情况,您已经有一个数据库,它具有列上设置的默认值,同样的道理,默认值不会在存储模式或实体本身中被拾取。 因此,如果在用于生成数据库架构的模型中为实体的属性定义默认值,请务必注意,为实体属性定义的默认值都不会推送到数据库中。 但是,值得一提的是,

我可能遗漏了一些内容,但Entity Framework 4生成的SQL Server 2008 R2数据库缺少我通过EF设计器配置的默认值


知道我可能做错了什么吗?

原因是,可以在概念模型中设置的默认值与数据库默认值完全不相关。
让我们考虑一个典型的情况,您已经有一个数据库,它具有列上设置的默认值,同样的道理,默认值不会在存储模式或实体本身中被拾取。

因此,如果在用于生成数据库架构的模型中为实体的属性定义默认值,请务必注意,为实体属性定义的默认值都不会推送到数据库中。

但是,值得一提的是,默认EntityObject T4代码生成模板和默认POCO实体模板都将在生成的类中设置该属性的默认值。

单击“从模型生成数据库…”后,您可以仔细查看由VS2010生成的yourModelName.edmx.sql文件来验证这一点。正如你所看到的,里面没有这样的东西:

为您的ColumnName添加约束默认值“DEFAULT Value”

谢谢您的简明回答。这很有道理,虽然会使代码迁移变得更困难,但确实有道理。如果向现有表中添加一个不可为null的字段,则在SQLStudio中比较两个架构生成的迁移脚本将无法工作。必须再次手动完成。