Entity Framework 强制视图对象具有 Nullable DateTime 字段

Entity Framework force view object to have Nullable DateTime field

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

当我们要求 EF "Update model from database" 它创建的对象有一个标准的 DateTime 来表示这个字段,而不是一个 Nullable。因此,每次它从视图中选择该字段为空的记录时,它都会失败。

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

是的,你可以做到。

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

然后,转到 EntityType、select 和 属性 并设置属性 NullableTrue

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

希望对您有所帮助

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

Entity Framework and SQL Server View