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等。
这样就在自动在数据库创建成功了,不在很多文章中的默认数据库(坑啊)。