EF 从sqlserver2008 迁移到 2005出现的BUG

在VS10+Server08中使用EF4.4,发布数据库为SQL05,发生错误的问题

问题描述
环境描述:工具为VS2010+SQL08 R2,EntityFramework版本为4.4(在Framework4.5中为5.0),在本机完全测试完成后,发布到服务器上(Server 2008 R2+Sql 2005)时,会出现错误。
解决方案
在Windows资源管理器中找到实体模型文件(后缀为edmx),用记事本打开后,可看到如下内容:
在图片中框选部分,默认是2008,修改为2005.则不会将达datetime类型转换为数据库的datetime2类型,所以解决问题。
原因分析
通过查找资料得知:

 

ProviderManifestToken 是 Entity Data Model (EDM) 内存储架构定义语言 (SSDL) 中的 Schema 元素的必需属性。此标记用于为脱机方案加载提供程序清单。

打开存储连接时,提供程序可以获取所有需要的信息以选择要返回的正确清单。这在脱机方案中可能做不到,此时,连接信息不可用或无法连接到存储。对于这些情况,Entity Framework 在 SSDL 中存储了一个提供程序清单标记,足够提供程序用来标识清单。

该标记没有特定的架构;要由提供程序来选择在不打开到存储的连接的情况下标识清单所需的最少信息。

下面的“提供程序清单标记”示例显示了 ProviderManifestToken 属性中捕获的 SQL Server 版本信息。

    <Schema Namespace="Test.Simple.Target" Alias="Self" Provider="System.Data.SqlClient"ProviderManifestToken="2005"xmlns:edm="http://schemas.microsoft.com/ado/2006/04/edm/ssdl"xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl"></Schema>
注->该段内容摘自:http://msdn.microsoft.com/zh-cn/library/bb896311%28v=VS.90%29.aspx

在资料得知,在EF4.x中,默认会将C#的Datetime类型转换为数据库的datetime2类型,所以导致该错误。修改为05后,会强制EF使用datetime类型,所以在SQL 2005中可以使用。默认转换为datetime2,通过SQL  Server Profiler监视sql语句可看到。

转载于:https://www.cnblogs.com/hubinglovecode/p/5159998.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[新闻]Ubuntu7.04于4月19日全球同步发布

[新闻]Ubuntu7.04于4月19日全球同步发布!!!鼓掌欢迎,准备更新!!!http://www.ubuntu.com/转载于:https://www.cnblogs.com/cime63/archive/2007/04/19/720131.html

解决Docker构建时出现的 WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/main: Permission denied

解决Docker构建时出现的 WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/main: Permission denied在根据官网的Docker-compose构建示例项目时遇到的问题&#xff0c;原因是因为无法访问官网给出的外网镜像&#xff0c;可能还会出现WARNING: Ignoring https://…

可耻的客户端,可怕的征兆,必须趁早消灭它

最近在我的Android手机上安装一个小软件&#xff0c;不知为何&#xff0c;顶部的消息提示有软件推荐&#xff0c;最开始还以为是某些软件的更新提示&#xff0c;于是点击一次&#xff0c;却发现直接安装该软件。当时我感到非常愤怒。真是一个可耻的程序员做了一个可耻的客户端&…

Table还是CSS,请您说说您的见解

这两天在对网页进行排版&#xff0c;可是觉得Table总是很烦&#xff0c;后来使用CSS&#xff0c;可是CSS也有CSS的问题&#xff0c;无论是什么好像都不能十全十美。请朋友们发现您的意见&#xff0c;您觉得如何&#xff1f; 转载于:https://www.cnblogs.com/edrp/archive/2007/…

Google Android开发精华教程

Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称&#xff0c;该平台由操作系统、中间件、用户界面和应用软件组成&#xff0c;号称是首个为移动终端打造的真正开放和完整的移动软件。本文汇总整理了时下关于Google Android技术教程的下载资源&…

转盘不转动的问题

2019独角兽企业重金招聘Python工程师标准>>> Stack Overflow is a question and answer site for professional and enthusiast programmers. Its 100% free, no registration required. jQuery Rotate - IE7 & IE8 Issues up vote 11 down vote favorite 3 I a…

主机无法连接虚拟机中的redis服务

解决&#xff1a;主机<本地>无法连接虚拟机中的redis服务首先保证虚拟机网络已经和主机网络互通&#xff0c;即相互ping对方IP&#xff0c;能ping通但是仍然连不上redis服务&#xff0c;可能是以下问题。redis服务配置问题 配置redis.conf如下 protected-mode no #关闭…

重构机房收费系统(二)

接上篇《机房收费系统重构&#xff08;一&#xff09;》 二、概要设计 完成了用例图&#xff0c;并用结合用例图完善了一下需求分析说明书&#xff0c;忘记是第几次修订需求分析说明书。有了用例图&#xff0c;很自然就进入了概要设计阶段。我认为这一阶段就是结合包图解决系统…

VS 2005 安装一个的小问题

今天通过 添加/删除 安装了VC的部分功能之后&#xff0c;在 程序》Visual Studio 2005 》Visual Studio 2005 Tools 里面竟然找不到 ActiveX Control Test Container 了&#xff0c;但是却有 Spy和 MFC-ATL Trace Tool&#xff0c;建了MFC ActiveX功能在IDE里面 工具 菜单中也找…

《Windows核心编程》学习笔记(9)– 在win7或者vista系统下提升一个进程的运行权限...

win7或者vista默认运行程序是在受限制的环境下运行的&#xff0c;以减轻病毒对于系统的破坏。那么我们怎样才能提升一个进程的权限以至让它在 管理员模式下运行。当然CreateProcess函数没有提供这个功能。相反我们需要调用的是ShellExecuteEx函数&#xff1a; BOOL ShellExecu…

2015第29周二AOP

1、问题&#xff1a;想要添加日志记录、性能监控、安全监测 2、最初解决方案2.1、最初解决方案&#xff1a;在每个需要的类函数中重复写上面处理代。 缺点&#xff1a;太多重复代码&#xff0c;且紧耦合2.2、抽象类进行共性设计&#xff0c;子类进行个性设计&#xff0c;此处不…

Docker-compose配置Mysql,Redis,MongoDB

Docker-compose下配置Mysql&#xff0c;Redis&#xff0c;MongoDB详解一、docker-compose简介二、构建一个实例项目1.前后端实现2.Dockerfile及docker-compose.yml3. 生成镜像三、实例程序源码一、docker-compose简介 Compose是用于定义和运行多容器Docker应用程序的工具。通过…

初学者应该了解的一些SQL语句及hr 用户解锁相关

初学者应该了解的一些SQL语句 1.显示当前连接用户SQL> show user&#xff1b; 2.查看系统拥有哪些用户SQL> select * from all_users; 3.连接到新用户SQL> conn 用户名/密码 4.查询当前用户下所有对象SQL> select * from tab; 5.建立第一个表SQL> create table …

用Delphi 6开发ASP上传组件详解

文件上传是WEB开发中经常要用到的功能&#xff0c;但ASP本身和内置的组件都不支持文件上传功能。网上流传的一些第三方组件虽然能够解决这个问题&#xff0c;但大多是要收费的&#xff0c;更别说Open Source了。本文将详细剖析WEB文件上传的原理&#xff0c;以及一步步指导读者…

使用WebDeployment Project改善VS2005发布网站问题

VS2005发布网站时不会像VS2003一样生成规则的DLL文件、而生成的DLL文件名含有随机数且不能一个项目生成一个DLL文件、让人有一些遗憾、为了做到像vs2003一样&#xff0c;微软发布了WebDeployment Project插件可解决此问题&#xff1a;下载地址1、下载后安装、右键选择vs2005中的…

03 - const static extern

const是一个C语言的关键字&#xff0c;它限定一个变量不允许被改变。使用const可以在一定程度上提高程序的安全性和可靠性&#xff0c;再者在看别人的代码作品的时候也可以有助于清晰理解const所起的作用。 1、const和#define的区别 &#xff08;1&#xff09;编译器处理的方式…

Linux、Windows、Mac下Docker的安装与使用

Linux、Windows、Mac下Docker的安装与使用一、Linux下的安装二、Windows与Mac下的安装三、Docker的使用一、Linux下的安装 这里以Centos 7为例&#xff0c;首先&#xff0c;确保系统已经正确运行了Centos 7并已经联网。yum安装gcc环境 yum -y install gcc yum -y install gcc…

[智能架构系列]什么是Buddy智能开发框架

buddy框架&#xff0c;秉承国内优秀框架THINKPHP的优点并增加了很多的商业特性和集成了全版本的商业项目模块&#xff0c;提供给创业者一个最好的选择 组建图: 转载于:https://www.cnblogs.com/scotoma/archive/2011/10/17/2215553.html

Mac nginx PCRE install ngnix

1 下载&#xff1a;pcre-8.12.tar.gz ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre 2 sudo tar xvfz pcre-8.12.tar.gz 解压文件 解压完成之后&#xff0c;执行命令 cd pcre-8.12sudo ./configure --prefix/usr/local --enable-utf8 sudo make sudo make instal…

解决IE6下,给图片加上line-height属性不起作用的方法

在css设置中&#xff0c;我们一般用行高line-height来设定某一行的高度&#xff0c;这在ie7与firefox等浏览器都适用。但当行中有其他元素时&#xff08;如图片&#xff0c;SPAN,li..&#xff09;在IE6.0下line-height会不起效果&#xff0c;后来查了下资料&#xff0c;果然如此…