entity framework:将nullable设置为false,但type仍然可以为空

此问题涉及在Visual Studio 2012中创建的新类库项目。

我已经将SQL Server视图添加到我的entity framework模型中。

PromisedDate列的属性中,我已将Nullable从(None)更改为False因为此列中永远不会返回null值。 我已经仔细检查了select语句没有空值。

edmx的屏幕截图,显示nullable设置为false

但是,即使在保存之后,关闭Visual Studio中所有打开的选项卡并完全清理并重建解决方案, PromisedDate仍然是DateTime? 我必须继续在代码中使用.Value来获取它的值。

令人沮丧的是,我做错了什么?!

以下是生成的.CS文件的屏幕截图:

生成的类的屏幕截图显示仍然可以为空

您应该执行以下步骤。

1)保存设计器文件并从设计器生成数据库
2)单击上下文文件和代码生成文件(T4),然后单击运行自定义工具。
3)确保再次保存文件,生成数据库后将出现*。