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

时间:2015-03-23 17:26:21

标签: entity-framework view

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

当我们要求EF从数据库"更新模型时#34;它创建的对象有一个标准的DateTime来表示这个字段,而不是Nullable。因此,每当它从视图中选择具有该字段的NULLS的记录时,它就会失败。

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

2 个答案:

答案 0 :(得分:1)

是的,你可以这样做。

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

ConceptualEntityModel

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

Nullable Field

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

希望这有帮助

答案 1 :(得分:-1)

我发现这有助于: 将您的字段包装在DB视图上的ISNULL()中以强制可以为空的

Entity Framework and SQL Server View