我想在我的模型中有一个 DateTime属性,由MSSQL2008类型支持,它可以保持至少3毫秒的精度。我想先做模型,即能够在VS2010设计器中单击“从模型中生成数据库...”并获得正确的结果而无需进一步调整(我知道有很多变通方法)。 / p>
我自己的研究: 我已经看到了关于datetime2问题的一些其他线程,但问题似乎正好相反,当他们想要datetime时获取datetime2。编写的解决方案表明EDMX中的ProviderManifestToken =“2005”给出了datetime,而ProviderManifestToken =“2008”给出了datetime2行为。
我想要datetime2,我已经有了ProviderManifestToken =“2008”,但仍然只能获得日期时间。 有一个MSDN-thread that's suggesting a manually modifed T4-template。 但是调整T4(或文本编辑器中的EDMX文件)是在Model First中完成datetime2行为的唯一方法吗?这不是向EF模型添加精确日期时间属性的好方法......
更新 我已将此问题提交给Microsoft Connect,您可以找到它here。如果你想提升它,请投票给它......
答案 0 :(得分:3)
默认SQL生成将始终使用DATETIME
。如果您想使用DATETIME2
,只需尝试从模型中生成SQL脚本,并在需要时将DATETIME
替换为DATETIME2
(它应该可以使用)。如果你想要更好地控制代,你必须修改模板,你还必须手动修改EDMX =>基于结构的注释。 Here是使用DATE
代替DATETIME
的类似答案。