【问题标题】:Entity Framework force view object to have Nullable DateTime field实体框架强制视图对象具有 Nullable DateTime 字段
【发布时间】:2015-03-23 17:26:20
【问题描述】:

我们有一个包含 UNION 查询的数据库视图。查询中的第一个 SELECT 语句提取一个非空的 DateTime 字段。第二个 SELECT 语句故意使用 NULL 代替该字段。

当我们要求 EF“从数据库更新模型”时,它创建的对象有一个标准的 DateTime 来表示这个字段,而不是一个 Nullable。所以每次它从视图中选择该字段为 NULLS 的记录时,它都会失败。

除了使原始表中的字段可以为空之外,还有什么方法可以让 EF 将其视为可以为空的字段?

【问题讨论】:

    标签: entity-framework view


    【解决方案1】:

    是的,你可以这样做。

    首先,将ConceptualEntityModel中的选项Update Property Facets更改为false(默认为True)。

    然后,转到EntityType,选择您想要为空的属性并将属性Nullable设置为True

    在这两项更改之后,当您从数据库更新模型时,该属性将保持为 Nullable

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      我发现这会有所帮助: 将您的字段包装在数据库视图上的 ISNULL() 中以强制为空

      Entity Framework and SQL Server View

      【讨论】:

      • 实际上,使用 ISNULL 会强制该字段不可为空。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多