导读:上篇博客中介绍了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=&quot;data source=myname;initial catalog=mydatabase;persist security info=True;user id=sa;password=mypassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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数据模型生成串(二):数据库连接串分析的更多相关文章

  1. 【EF 3】浅谈ADO数据模型生成串(一):csdl,ssdl,msl分析

    导读:这段经历,真的是难以忘怀.恨得我牙痒痒,就一个字符串拼接,前前后后尽然报了不下30个错.有的错很快就能调出来,有的错调一天.两天,是真的可以的.最终总结了一下,这些错很大一部分原因是对于EF生成 ...

  2. 谁还没遇上过NoClassDefFoundError咋地——浅谈字节码生成与热部署

    谁还没遇上过NoClassDefFoundError咋地--浅谈字节码生成与热部署 前言 在Java程序员的世界里,NoClassDefFoundError是一类相当令人厌恶的错误,因为这类错误通常非 ...

  3. Python测试开发-浅谈如何自动化生成测试脚本

    Python测试开发-浅谈如何自动化生成测试脚本 原创: fin  测试开发社区  前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...

  4. 车大棒浅谈jQuery源码(二)

    前言 本来只是一个自己学习jQuery笔记的简单分享,没想到获得这么多人赏识.我自己也是傻呵呵的一脸迷茫,感觉到受宠若惊. 不过还是有人向批判我的文章说,这是基本知识点,完全跟jQuery源码沾不上边 ...

  5. 浅谈Unity的渲染优化(1): 性能分析和瓶颈判断(上篇)

    http://www.taidous.com/article-667-1.html 前言 首先,这个系列文章做个大致的介绍,题目"浅谈Unity",因为公司和国内大部分3D手游开发 ...

  6. [转]浅谈Android五大布局(二)——RelativeLayout和TableLayout

    在浅谈Android五大布局(一)中已经描述了LinearLayout(线性布局).FrameLayout(单帧布局)和AbsoulteLayout(绝对布局)三种布局结构,剩下的两种布局Relati ...

  7. 浅谈时钟的生成(js手写代码)

    在生成时钟的过程中自己想到布置表盘的写法由这么几种: 当然利用那种模式都可以实现,所以我们要用一个最好理解,代码有相对简便的方法实现 1.利用三角函数 用js在三角函数布置表盘的过程中有遇见到这种情况 ...

  8. 浅谈时钟的生成(js手写代码)(非原创)

    在生成时钟的过程中自己想到布置表盘的写法由这么几种: 当然利用那种模式都可以实现,所以我们要用一个最好理解,代码有相对简便的方法实现 1.利用三角函数 用js在三角函数布置表盘的过程中有遇见到这种情况 ...

  9. 【C++】浅谈三大特性之一继承(二)

    三,继承方式&访问限定符 派生类可以继承基类中除了构造函数和析构函数之外的所有成员,但是这些成员的访问属性是由继承方式决定的. 不同的继承方式下基类成员在派生类中的访问属性: 举例说明: (1 ...

随机推荐

  1. Form_Form Builder国际化多语言开发(案例)

    2014-05-06 Created By BaoXinjian

  2. Codeforces Round #367 (Div. 2) Hard problem

    Hard problem 题意: 有n个字符串,对第i个字符串进行反转操作代价为ci. 要使n个字符串按照字典序从小到大排列,最小的代价是多少. 题解: 反转就是reverse操作,比如说45873反 ...

  3. UNIX网络编程

    UNIX网络编程--socket的keep http://www.68idc.cn/help/opersys/unixbsd/20150731471448.html

  4. sizeof 和 strlen 区别

    Sizeof与Strlen的区别与联系 一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型. ...

  5. systick优先级的理解

    sysTick系统嘀嗒定时器并非STM32独有的,它是Cortex内核的部分,CM3为它专门开出一个异常类型,并且在中断向量表中占有一席之地(异常号15).这样它可以很方便的移植到不同厂商出CM3内核 ...

  6. 金蝶BOS

    1, 金蝶BOS 金蝶BOS是一个开放的集成与应用平台,是金蝶企业管理软件解决方案.合作伙伴解决方案以及客户定制应用的技术平台.能够为企业灵活而迅速的设计.构建.实施和执行一套随需应变的企业管理软件系 ...

  7. 1小时vpn coding让开发更简单 或https://www.imfreevpn.org/

  8. 树莓派通过apt方式安装opencv库

    1.安装opencv     开始之前进行必要的更新工作. sudo apt-get update     安装opencv. sudo apt-get install libcv-dev     安 ...

  9. 使用tcpdump+Wireshark(或Fiddler)做linux服务器的网络请求分析

    我们的服务器上,一般都没有窗口界面,这时候要抓包,用tcpdump是最方便的.而分析网络请求时,wireshark又是相当方便的,这时候我们就需要把它们两个一起来使用了. tcpdump 抓取数据 命 ...

  10. I2C协议(转)

    1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL.   SDA传输数据是大端传输,每次传输8bit,即一字节.   支持多主控(multimastering),任何时间点只能有一 ...