前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Entity Framework中重用现有的数据库连接字符串

在Entity Framework中重用现有的数据库连接字符串

作者头像
跟着阿笨一起玩NET
发布2018-09-19 15:47:46
1.2K0
发布2018-09-19 15:47:46
举报

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的构造函数,代码如下:

代码语言:javascript
复制
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);
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-01-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档