实体框架 - 冗余连接字符串

jwa*_*zko 9 .net c# configuration ado.net entity-framework

我在我的项目中使用Entity Framework 4.框架已创建自己的连接字符串,因此我的web.configconnectionStrings部分文件如下所示:

  <connectionStrings>
    <add name="ApplicationServices" connectionString="data source=localhost;user id=user;pwd=pass;initial catalog=VNK" providerName="System.Data.SqlClient" />    
    <add name="VNKEntities" connectionString="metadata=res://*/VNKModel.csdl|res://*/VNKModel.ssdl|res://*/VNKModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=VNK;User ID=user;Password=pass;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

第一个连接字符串ApplicationServices是我原来的连接字符串.第二个,VNKEntities在生成模型时创建.

当我检查生成的*.edmx文件时,我发现此模型正在引用其连接字符串,如下所示:

    /// <summary>
    /// Initializes a new VNKEntities object using the connection string found in the 'VNKEntities' section of the application configuration file.
    /// </summary>
    public VNKEntities() : base("name=VNKEntities", "VNKEntities")
    {
        this.ContextOptions.LazyLoadingEnabled = true;
        OnContextCreated();
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是如何摆脱VNKEntities连接字符串,只留下ApplicationServices,我将从我的模型中引用?我想只有一个连接字符串到数据库,因为我只使用一个数据库(从更换的构造函数的参数name=VNKEntitiesname=ApplicationServices不工作).

问候

gan*_*tas 3

  1. 从普通连接字符串手动创建 DbConnection
  2. 手动创建MetadataWorkspace对象。
  3. 使用此ctor创建EntityConnection
  4. 将实体连接传递给 ObjectContext 构造函数。