zoukankan      html  css  js  c++  java
  • 在Entity Framework中重用现有的数据库连接字符串

    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);
    }
  • 相关阅读:
    实习应聘总结
    SSH:远程登陆
    对HashMap进行排序
    python笔记-集合类型
    python笔记-序列类型
    python笔记-数字类型
    python笔记-变量与字符串
    python笔记-数据类型
    C#winform调用外部程序,等待外部程序执行完毕才执行下面代码
    防止查询数据返回数据行为零引起的逻辑判断重复或抛出异常
  • 原文地址:https://www.cnblogs.com/dudu/p/entity_framework_connection_string.html
Copyright © 2011-2022 走看看