QQ交流群:110826636

EntityFramework 中的链接研究初探

很多人用EF的默认链接工厂:System.Data.Entity.Infrastructure.LocalDbConnectionFactory

然后我一开始就不习惯,然后研究了一下,截图如下

然后就是


 

public System.Data.Common.DbConnection CreateConnection(string nameOrConnectionString)
System.Data.Entity.Infrastructure.LocalDbConnectionFactory 的成员

摘要:
基于给定的数据库名称或连接字符串为 SQL Server LocalDb 创建连接。如果给定的字符串包含“=”字符,则将其视为一个完整的连接字符串,否则仅将其视为数据库名称。

参数:
nameOrConnectionString: 数据库名称或连接字符串。

返回值:
已初始化的 DbConnection。

这也是为什么可以用【name=数据库链接名】的意思。

很多人基本都在用Model frist和db frist时用自己命名的实体Dbcontext名

接着是


 

SqlConnectionFactory中成员BaseConnectionString

public string BaseConnectionString { get; }
System.Data.Entity.Infrastructure.SqlConnectionFactory 的成员

摘要:
要用于“初始目录”之外的数据库的选项的连接字符串。在调用 CreateConnection 时,将基于数据库名称在此字符串前预置“初始目录”。默认值为“Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True”。

返回值:
连接字符串。

LocalDbConnectionFactory中的成员BaseConnectionString

public string BaseConnectionString { get; }
System.Data.Entity.Infrastructure.LocalDbConnectionFactory 的成员

摘要:
用于“初始目录”、“数据源”和“AttachDbFilename”之外的数据库选项的连接字符串。调用 CreateConnection 时,将基于数据库名称在此字符串前添加“初始目录”和“AttachDbFilename”。将基于 LocalDbVersion 参数设置“数据源”。默认值为“Integrated Security=True; MultipleActiveResultSets=True;”。

两者的默认值都是不一样的。


 

我用的EF4.4版本,发现链接工厂有三个,SqlConnectionFactory,LocalDbConnectionFactory,SqlCeConnectionFactory。最后一个是针对小型数据库SqlCE,Access等。


这样就在自动在数据库创建成功了,不在很多文章中的默认数据库(坑啊)。

posted @ 2015-05-05 09:55  FourOne  阅读(1090)  评论(2编辑  收藏  举报