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 和 属性 并设置属性 Nullable
为 True
这两个更改之后,当您从数据库更新模型时,属性 将保持为 Nullable
希望对您有所帮助
我发现这有帮助:
将您的字段包装在数据库视图的 ISNULL() 中以强制为 nullable
Entity Framework and SQL Server View
我们有一个包含 UNION 查询的数据库视图。查询中的第一个 SELECT 语句提取一个非空 DateTime 字段。第二个 SELECT 语句故意用 NULL 代替此字段。
当我们要求 EF "Update model from database" 它创建的对象有一个标准的 DateTime 来表示这个字段,而不是一个 Nullable。因此,每次它从视图中选择该字段为空的记录时,它都会失败。
除了使原始 table 中的字段可为空之外,还有什么方法可以使 EF 将其视为可为空字段?
是的,你可以做到。
首先,将ConceptualEntityModel
中的选项Update Property Facets
改为false(默认为True)。
然后,转到 EntityType
、select 和 属性 并设置属性 Nullable
为 True
这两个更改之后,当您从数据库更新模型时,属性 将保持为 Nullable
希望对您有所帮助
我发现这有帮助: 将您的字段包装在数据库视图的 ISNULL() 中以强制为 nullable
Entity Framework and SQL Server View