您的位置:首页 > 移动开发

EF中DbContext如何使用自定义数据源,而不是使用app.config中的链接字符串

2017-11-07 09:09 288 查看
如题:

之前在EF使用时,一直纠结于APPCONFIG中的配置的连接字符串,不能使用动态链接字符串;

经过对比,DbContext的构造函数中有一个构造函数如下:

//
// 摘要:
//     通过现有连接来连接到数据库以构造一个新的上下文实例。如果 contextOwnsConnection 是 false,则释放上下文时将不会释放该连接。
//
// 参数:
//   existingConnection:
//     要用于新的上下文的现有连接。
//
//   contextOwnsConnection:
//     如果设置为 true,则释放上下文时将释放该连接;否则调用方必须释放该连接。
[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
[SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
public DbContext(DbConnection existingConnection, bool contextOwnsConnection);


从该构造函数入手,每次创建一个新的链接,其中contextOwnsConnection参数是设置为 true,使用完之后释放即可。

具体实现如下:
//您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)
//使用“LocalDb”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的
//“com.InstrumentCar.Datas.LocalDb”数据库。
//
//如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“LocalDb”
//连接字符串。
public LocalDb()
: base(new SQLiteConnection(Config.Config.getDatabaseConnStr()),true/*"name=LocalDb"*/){}
在使用时,可按照下列方法使用:
using (LocalDb localdb = new LocalDb())
{
...
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ef c# 数据库 实例 数据