代码之家  ›  专栏  ›  技术社区  ›  Adrian Grigore

实体框架:列必须被映射,尽管它有一个默认值?

  •  8
  • Adrian Grigore  · 技术社区  · 15 年前

    我正在尝试创建一个基于遗留SQLServer2008数据库的EntityFramework4模型。因为模型将在web服务中发布,所以我需要从模型的一个实体中省略一个名为newslettesubscribed的整数列。

    删除EF设计器中的列后,出现以下编译错误:

    Error   59  Error 3023: Problem in mapping fragments starting at line 356:Column Users.NewsletterSubscribed in table Users must be mapped: It has no default value and is not nullable.
        C:\Users\Adrian\Documents\Sites\Zeiterfassung\Zeiterfassung\API\V1\EFModel.edmx 357 15  Zeiterfassung
    

    但该列似乎绑定了默认值0。我尝试对数据库运行以下SQL语句:

    ALTER TABLE [dbo].[Users] ADD  DEFAULT ((0)) FOR [NewsletterSubscribed]
    

    但这也失败了:

    是的。消息1750,16级,状态0,行 3无法创建约束。看到了吗 以前的错误。

    谢谢,

    1 回复  |  直到 15 年前
        1
  •  12
  •   Luke Puplett    10 年前

    使用VisualStudioXML编辑器而不是实体设计器打开.edmx,然后添加 DefaultValue="0"