代码之家  ›  专栏  ›  技术社区  ›  Andrew Matthews

linqto实体在sql2005express上生成包含datetime2的查询

  •  5
  • Andrew Matthews  · 技术社区  · 14 年前

    我有一个linqtoentities应用程序和一个数据库项目来管理以.net4.0为目标的vs2010解决方案中的模式。实体模型当前正在从数据库中进行反向工程。其中一个表是用datetime类型的列定义的。数据库项目被配置为使用SQLServer2005兼容模式,因此部署都正常。

    System.Data.UpdateException: An error occurred while updating the entries. 
    See the inner exception for details. ---> System.ArgumentException: The version 
    of SQL Server in use does not support datatype 'datetime2'.
    

    从堆栈跟踪可以看出,错误似乎发生在:

    System.Data.Mapping.Update.DynamicUpdateCommand
    

    我如何确认或否认这一点,以及如何阻止它的发生?实体框架不知道我已经要求db项目以2005兼容模式为目标,我也找不到一种方法来向它指出它正在查看的版本。值得一提的是,我在一台安装了2008Express的机器上创建了这个项目,但我会定期切换到另一台没有安装的机器(现在还不能升级)。

    1 回复  |  直到 14 年前
        1
  •  13
  •   Craig Stuntz    14 年前

    你得换衣服 ProviderManifestToken 在您的EDMX中,以值2005。你可能生成了你的数据库对2008年数据库。进行此更改,EF将停止使用2008语法。