Entity Framework模型优先方法中的DateTime映射和精度

And*_*ers 5 entity-framework-4

我希望在模型中使用DateTime属性,并以MSSQL2008类型为后盾,该类型至少可以保持3毫秒的精度。我想先做模型,即可以在VS2010设计器中单击“从模型生成数据库...”,而无需进行进一步调整即可获得正确的结果(我知道有很多解决方法)。


我自己的研究:我已经看过有关datetime2问题的其他一些话题,但是问题似乎恰恰相反,当他们想要datetime时获取datetime2。编写的解决方案建议EDMX中的ProviderManifestToken =“ 2005”给出日期时间,而ProviderManifestToken =“ 2008”给出datetime2行为。

我想要datetime2,并且已经有了ProviderManifestToken =“ 2008”,但仍然只能获取datetime。有一个MSDN线程建议使用手动修改的T4-template。但是调整T4(或文本编辑器中的EDMX文件)是否是在Model First中完成datetime2行为的唯一方法?这不是向EF模型添加精确的datetime属性的好方法...

更新: 我已将此问题提交给Microsoft Connect,您可以在此处找到。如果您想增强它,请投票...

Lad*_*nka 3

默认 SQL 生成将始终使用DATETIME. 如果您想使用DATETIME2它,您可以简单地尝试从您的模型生成 SQL 脚本,并在需要时替换DATETIME为(它应该可以工作)。DATETIME2如果您想更好地控制生成,您确实必须修改模板,并且还必须手动修改 EDMX => 基于结构的注释。DATE是使用代替的类似答案DATETIME