【问题标题】:Entity Framework 4 and Default Values实体框架 4 和默认值
【发布时间】:2010-08-28 02:46:41
【问题描述】:

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

有什么想法我可能做错了吗?

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

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

    因此,如果您为模型中将用于生成数据库模式的实体的属性定义默认值,请务必注意,您为实体属性定义的任何默认值都不会被推送到数据库.

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

    单击“从模型生成数据库...”后,您可以仔细查看由 VS2010 生成的 yourModelName.edmx.sql 文件来验证这一点。如您所见,其中没有这样的东西:
    YourColumnName 添加约束默认“默认值”

    【讨论】:

    • 感谢您的简洁回答。很有道理。
    • 这确实有意义,但会使代码迁移更加困难。将不可为空的字段添加到现有表中,通过比较 SQL Studio 中的两个架构生成的迁移脚本将不起作用。必须再次手动完成。
    猜你喜欢
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2015-01-18
    相关资源
    最近更新 更多