博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Entity Framework中重用现有的数据库连接字符串
阅读量:6374 次
发布时间:2019-06-23

本文共 1056 字,大约阅读时间需要 3 分钟。

http://www.cnblogs.com/dudu/archive/2011/01/29/entity_framework_connection_string.html

Entity Framework使用的连接字符串与ADO.NET是不同的,见下图:

相比于ADO.NET,Entity Framework的连接字符串不仅要存放metadata配置信息,还要存放完整的数据库连接字符串(上图中的"provider connection string"部分)。

这样的设计有两个不足之处:

1. 连接字符串配置复杂;

2. 无法重用现有的ADO.NET数据库连接字符串。

我觉得更合理的设计应该是将数据库连接字符串独立出来,并提供一个"provider connection string name"设置,在这个设置中可以指定“数据库连接字符串”的名称,效果见下图:

这样既简单,又能重用,多好!

YY之后,还是要回到现实,Entity Framework就是这个鸟样,现有的数据库连接字符串我就是想重用,那怎么办呢?

自己创建EntityConnection,并将之传递给ObjectContext的构造函数,代码如下:

 
public
CNBlogsObjectContext()
:
base
(BuildConnection(
"
CNBlogsDB
"
),
"
club_CNBlogsContainer
"
)
{
}
static
EntityConnection BuildConnection(
string
connectionStringName)
{
string
connectionString
=
ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
MetadataWorkspace workspace
=
new
MetadataWorkspace(
new
string
[] {
"
res://*/
"
},
new
Assembly[] { Assembly.GetExecutingAssembly() });
SqlConnection sqlConnection
=
new
SqlConnection(connectionString);
return
new
EntityConnection(workspace, sqlConnection);
}
你可能感兴趣的文章
[你必须知道的.NET]第十八回:对象创建始末(上)
查看>>
android 视图设置多个setTag数据
查看>>
android 对话框中的进度条 (ProgressDialog)
查看>>
小议网站建设注意事项
查看>>
使用Hive UDF和GeoIP库为Hive加入IP识别功能
查看>>
MIT6.006Lec03:插入排序,归并排序,递归树
查看>>
ccr1
查看>>
ELM327 OBD to RS232 Interpreters
查看>>
linux环境下获取真实的ip地址
查看>>
S3C2440上LCD驱动(FrameBuffer)实例开发讲解
查看>>
PostgreSQL处理xml数据初步
查看>>
使用QueueUserWorkerItem实现的线程池封装
查看>>
MySQL主从复制数据不一致问题【自增主键】
查看>>
Server.MapPath 出现未将对象引用设置到对象的实例
查看>>
VirtualBox-4.3.0启动报错及解决办法
查看>>
Resolve PSExec "Access is denied"
查看>>
C语言局部变量和全局变量问题汇总
查看>>
android 下的网络图片加载
查看>>
由浅入深探究mysql索引结构原理、性能分析与优化
查看>>
Paip.语义分析----情绪情感词汇表总结
查看>>