【EF 2】浅谈ADO数据模型生成串(二):数据库连接串分析
导读:上篇博客中介绍了ADO生成串的前一部分,本篇博客结合报错,接着介绍剩下的部分。
一、代码展示
<span style="font-family:KaiTi_GB2312;font-size:18px;"> <connectionStrings>
<add name="TestCrateDatabaseEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=myname;initial catalog=mydatabase;persist security info=True;user id=sa;password=mypassword;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings></span>
二、代码分析
2.1,provider=System.Data.SqlClient;
数据库驱动,在这段代码中,使用的是SQL Server的数据库服务器驱动。如果将来换库,比如换成MySQL,那么对应的这一个变量,也应该换成MySQL的驱动。
首先是下载驱动程序集,然后添加引用,最后更改连接字符串。
2.2,provider connection string
数据库连接串,切库的时候,关键替换这一条字符串。
data source:数据源,可以是数据库服务器的IP地址,也可以是名称,如果是本地的话,可以通过local和. 来代替。
initial catalog:将要连接的数据库名称。
persist security info:是否保存安全信息,比如,是否保存数据库密码,true为保存,false为不保存。
Integrated Security:集成安全,为true,也就是说使用Windows验证的方式去连接到数据库服务器。这样方式的好处是不需要在连接字符串中编写用户名和密码,从一定程度上说提高了安全性。当为false时,才使用连接串中的user id 和password连接数据库。当为SSP(SSPI是Security
Support Provider Interface:Microsoft安全支持提供器接口)I时,同样表示用window身份验证。注:默认值为false。
MultipleActiveResultSets:指定多活动的结果集是否与指定的链接相互关联;类型是bool类型;true代表与指定的链接关联;false代表与指定的链接不关联;默认值是false。解释一下,比如说有一个程序叫做 测试系统,当我们每打开一次测试系统进行数据操作的时候,都会连接一次对应的数据库。然后我再接着打开,再打开一个,再打开一个,就会连接很多次。如果将这个属性值设为false,那么不管我打开多少个测试系统,始终都只会有一个用户和数据库连接。
App=EntityFramework:使用EntityFramework的方式连接数据库操作。
2.3,providerName="System.Data.EntityClient"
使用的驱动名称(这里我们用的是DBfirst,使用的是EF实体模型,所以驱动是System.Data.EntityClient)。注意:在数据库连接字符串中也有一个provider,provider存在于数据库连接串中,指的是数据库的驱动。而这个providerName是并列于name、connectionString的,它们不在一个层级上。
三、报错分析和注意事项
3.1,Integrated Security的值无效。
但是我是配置的Integrated Security的属性为true,但是我的数据库却又是需要SQL 登录验证的,所以这两个之间相冲突。需要更改Integrated Security属性或者将数据库的验证方式改为window验证。
3.2,不支持关键字MultipleActiveResultSets
这个问题是在拼接的过程中报的错,是由于在紧接前面的数据库名称的时候,没有分号空格,它将数据库名称和这个属性值混合为了一体,所以出现了不支持关键字。
3.3,拼接的时候,注意引号
前面说过,在这一整个拼接串中,有3个并列部分,一个是Entity的name,一个是entity的连接信息connectionString,另外一个是EF的驱动。而在provider connection string中,数据库连接串,以及后面的MultipleActiveResultSets属性和APP属性是一个整体,如果不用引号标记,就会出错。
四、总结
在拼接字符串的过程中,还出了很多错,这段经历真的是让人醉了。我也想不明白当时怎么就接下了切库的活儿,真的是痛并快乐着。切库至今都没有出来,还是比较丢人的。
这条字符串拼接至今都在报错,还有一个错至今未解决。但是,当时我成功过,那么我坚信,未来的我也可以成功。我可以成功一次,我就可以成功无数次。
【EF 2】浅谈ADO数据模型生成串(二):数据库连接串分析的更多相关文章
- 【EF 3】浅谈ADO数据模型生成串(一):csdl,ssdl,msl分析
导读:这段经历,真的是难以忘怀.恨得我牙痒痒,就一个字符串拼接,前前后后尽然报了不下30个错.有的错很快就能调出来,有的错调一天.两天,是真的可以的.最终总结了一下,这些错很大一部分原因是对于EF生成 ...
- 谁还没遇上过NoClassDefFoundError咋地——浅谈字节码生成与热部署
谁还没遇上过NoClassDefFoundError咋地--浅谈字节码生成与热部署 前言 在Java程序员的世界里,NoClassDefFoundError是一类相当令人厌恶的错误,因为这类错误通常非 ...
- Python测试开发-浅谈如何自动化生成测试脚本
Python测试开发-浅谈如何自动化生成测试脚本 原创: fin 测试开发社区 前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...
- 车大棒浅谈jQuery源码(二)
前言 本来只是一个自己学习jQuery笔记的简单分享,没想到获得这么多人赏识.我自己也是傻呵呵的一脸迷茫,感觉到受宠若惊. 不过还是有人向批判我的文章说,这是基本知识点,完全跟jQuery源码沾不上边 ...
- 浅谈Unity的渲染优化(1): 性能分析和瓶颈判断(上篇)
http://www.taidous.com/article-667-1.html 前言 首先,这个系列文章做个大致的介绍,题目"浅谈Unity",因为公司和国内大部分3D手游开发 ...
- [转]浅谈Android五大布局(二)——RelativeLayout和TableLayout
在浅谈Android五大布局(一)中已经描述了LinearLayout(线性布局).FrameLayout(单帧布局)和AbsoulteLayout(绝对布局)三种布局结构,剩下的两种布局Relati ...
- 浅谈时钟的生成(js手写代码)
在生成时钟的过程中自己想到布置表盘的写法由这么几种: 当然利用那种模式都可以实现,所以我们要用一个最好理解,代码有相对简便的方法实现 1.利用三角函数 用js在三角函数布置表盘的过程中有遇见到这种情况 ...
- 浅谈时钟的生成(js手写代码)(非原创)
在生成时钟的过程中自己想到布置表盘的写法由这么几种: 当然利用那种模式都可以实现,所以我们要用一个最好理解,代码有相对简便的方法实现 1.利用三角函数 用js在三角函数布置表盘的过程中有遇见到这种情况 ...
- 【C++】浅谈三大特性之一继承(二)
三,继承方式&访问限定符 派生类可以继承基类中除了构造函数和析构函数之外的所有成员,但是这些成员的访问属性是由继承方式决定的. 不同的继承方式下基类成员在派生类中的访问属性: 举例说明: (1 ...
随机推荐
- Win8 安装驱动
从微软的网站上面下载了一些驱动,发现竟然没有Setup或者Install安装程序,囧. 快速查了一下,直接在inf文件右击的菜单里面选择“安装”即可.突然有点out的感觉. 参考:http://dig ...
- C#笔记一 .Net Framwork
参考Learning hard本人在博客园的主页: http://www.cnblogs.com/zhili/ 以及本书中的一些知识点: http://www.cnblogs.com/zhil ...
- Tomcat DEBUG模式下修改代码立刻生效!
- 真假云主机,VPS资料集合
资料来源: http://www.west263.com/services/CloudHost/pk.asp?ads=baidu912 用"云里雾里"形容中小企业用户对云计算的理解 ...
- ADF_ADF Faces系列6_ADF数据可视化组件简介之建立Thematic Map Component
2013-05-01 Created By BaoXinjian
- UVa 10801 - Lift Hopping(dijkstra最短路)
根据题意,以每一层楼为顶点,每个电梯可以到达的两层楼之间的秒数为每一条边的权值,以此构建一个无向图.然后利用dijkstra求出最短的时间,注意每次换乘电梯需要等待60s(因为同一个电梯上的楼层是相互 ...
- java版的YUI3 combine服务-Combo Handler
YUI3中,为了避免js文件过大,各个功能模块是拆分的.它有一个“种子”的概念:先下载一个小的核心的js文件到浏览器端,再通过这个小的js文件去加载其它所需的模块. 这种按需加载虽然解决了单个js过大 ...
- Android的所有权限说明
Android权限分的很细,但命名比较人性化,Android permission比SymbianCapabilities有了不少改进,下面就来看看权限许可都有哪些定义吧,发现还是比较繁多的,如果发现 ...
- Replace JSON.NET with Jil JSON serializer in ASP.NET Web API
I have recently come across a comparison of fast JSON serializers in .NET, which shows that Jil JSON ...
- MySql 申明变量以及赋值
sql server中变量要先申明后赋值: 局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的): 申明局部变量语法:declare @变量名 数据类型:例如:declare ...