2009-06-23 83 views
0

我已经意识到smalldatetime sql server数据类型已经映射到我的实体项目中的日期时间。我都可以。当实体保存更改时,它实际上使用datetime2数据类型(目前我们的生产数据库不支持)。现在,这是一个问题。实体框架日期时间数据类型映射

看着实体设计器代码,我看到属性使用VB的日期对象,虽然属性窗口显示它为日期时间。

我不想更改实体代码,因为我不想从数据库更新来覆盖我的更改,从而导致代码维护混乱。

datetime2从哪里来的?有任何想法吗?

在此先感谢您的帮助, 奥利

回答

4

好乡亲,即固定它。

因为实体正在从sql 2008数据库更新引用,所以ProviderManifestToken设置为2008.在xml编辑器中打开edmx文件并将值更改为2005修复了我们的问题。

+0

谢谢!这是一个阶级痛苦的屁股找到解决方案。 – 2009-09-17 16:03:09

1

什么是SSDL说财产是什么?

打开EDMX文件最大使用XML编辑器(一个在VS不错)

现在看在StorageModels元素有问题的列。

SSDL部分中属性的“类型”是EntityFramework认为数据库列的类型。我怀疑它会说DateTime2。你应该能够将它改回到像DateTime这样的东西。

希望这有助于

亚历

+0

嗨亚历克斯, 感谢您的答复。 显示的类型是DateTime。生成的SQL使用datetime2。我们的开发数据库(SQL 2008)支持它,但我们的产品尚未升级。它将在不久的将来,但我们希望手头上的生产代码(因此,问题)。 无论如何,我们试着改变清单文件来使用sql server 2005版本映射,而不是2008年。到目前为止没有成功。 – Orry 2009-06-23 15:48:57