设为首页 收藏本站
查看: 1721|回复: 0

[经验分享] VS2010连接SQL Server2000并使用Entity Framework-engine

[复制链接]

尚未签到

发表于 2018-10-13 11:38:45 | 显示全部楼层 |阅读模式
  VS2010的数据库连接工具已经不支持SQL Server2000了,自然也就无法用可视化的方法使用Entity Framework。最近因为需要对两个老系统进行改造,用的都是2000数据库,第一个因为比较简单,所以我直接把数据库升级到2005 ,然后修改系统配置。但是第二个升级会比较麻烦,而我又想用Entity Framework,最终在一个老外的博客上找到了一个方法,原文地址:http://www.skonet.com/Articles_Archive/How_To_Use_Entity_Framework_4_With_Visual_Studio_2010_and_SQL_Server_2000.aspx 。
下面我来详细介绍一下步骤。    1.用VS2010新建一个项目,为简单起见建了个控制台项目;    2.在项目中新建一个ADO.NET实体数据模型,选择空模型,名称设为MyModel,如图:
DSC0000.png

DSC0001.png

DSC0002.png

3.下载以下xml文件:http://www.skonet.com/uploadedFiles/Code/BaseEntityModel.edmx.xml ;    4.右击项目中的MyModel.edmx选择打开方式->XML(文本)编辑器
DSC0003.png

5.复制第3步中下载的文件内容全部替换4中的内容;    6.Ctrl+F把所有%DB_NAME% 替换成MyModel,共6处替换,替换完成后保存关闭该页,不关闭后面可能会出问题;    7.在项目中新建一个配置文件App.config,把以下配置节复制到App.config,          providerName="System.Data.EntityClient" />    8.把配置中的所有%DB_NAME%替换成MyModel,共5处替换,修改%DB_HOST_NAME%为你的数据库实例名,例如我的安装实例名为SQL2000,就应该是Data Source=.\SQL2000,如果是默认实例安装就是Data Source=. ;当然也可以是远程的服务器;  9.Initial Catalog=%DB_NAME% 这里的%DB_NAME% 改成你要连接的库的名称(在第8步中已经被替换成MyModel了,如果你库的名称也为MyModel则不用改),例如我要连接的库的名称是fit_net DSC0004.png ,Initial Catalog=fit_net ;  10.替换%DB_USER% 为你的数据库登录名,例如我的为sa,替换%DB_USER_PWD%为你的数据库登录密码,例如我的为sa,User>配置完成后如下图 :
DSC0005.png

11.双击直接打开MyModel.edmx(设计视图模式打开),右击页面选择从数据库更新模型,就可以直接连上2000数据库了,而不需要用VS2010先进行可视化的连接(想连接你也连接不上,除非用VS2008,当然这不是这里要解决问题的方法);
DSC0006.png

表都出来了,在这里选择你想映射的表:
DSC0007.png

经测试,同样支持“添加代码生成项”,想支持POCO的可以继续以下操作(如果你用的是EF4.1以上版本):
DSC0008.png

DSC0009.png (注:要使用这个功能需要安装额外的插件,比ObjectContext更轻量,这里不作介绍。)

DSC00010.png (注:我习惯用一样的名称)

DSC00011.png (整个项目就是这样);

DSC00012.png

(生成的类很简单,没有传统edmx里那些臃肿的代码,支持持久化透明。)   最后总结一下:  1.能用2005以上版本数据库就不要用2000;  2.如果老系统用的是2000,但升级比较方便的话最好升级到2005以上版本;  3.如果实在不方便升级,最后再考虑这种方法,Entity Framework对2000的支持并不是特别好,即使能连上可能有些功能也没法用,用的时候小心。常用的功能没问题,可以避免写大量的代码,但如果发现有些功能无法实现,最好手写代码,已经不算麻烦了;  4.相信我,总会有问题的,墨菲定律:如果一件事有一定的几率变得更糟,那它一定会变得更糟。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-621097-1-1.html 上篇帖子: asp [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。 下篇帖子: SQL Server 2005存储过程学习笔记——数据操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表