【问题标题】:Entity Framework custom config file实体框架自定义配置文件
【发布时间】:2015-01-25 19:32:44
【问题描述】:

我的应用基于 wcf 服务架构,其中一项服务是数据访问。该服务具有实体框架基础结构(例如 dbcontext、配置文件、poco 类..),并将其设置为控制台应用程序。现在这个服务也有一个配置文件(app.config),但我需要避免它。现在此服务作为单个 wcf 服务启动。这意味着对于任何对数据库的请求,我们都需要对数据访问进行 wcf 调用,然后调用数据库,但是如果我们摆脱这个服务并通过引用 dll 来引用这个项目,我们将不会进行任何 wcf 调用,并且我们可以一次调用数据库。对于这个 puprose,我需要将当前从 app.config 获取配置值的方法重构为另一种方法。我想保存配置文件,但使用其他名称,如“db.config”。所有想要使用数据库的服务都会在输出目录中有这个文件,但我不确定这种方法是否好。为我的任务提供建议或解决方案。

【问题讨论】:

    标签: .net entity-framework wcf architecture config


    【解决方案1】:

    据我了解,您有一个执行数据访问的基本 dll 和一些从第一个 dll 调用该数据访问逻辑的 WCF 项目,以某种方式将数据库连接字符串传递给基本 dll。

    我所做的是将数据库特定设置移动到基本 dll 的属性/设置中,然后在调用服务 app.config 中添加一个配置部分以包含这些设置。

    所以,在我的核心 wcf 库中,我会有这样的网络配置:

    <?xml version="1.0" encoding="utf-8" ?> <configuration>
    
      <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
          <section name="WcfServiceLibrary1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>   </configSections>
    
    
      <!-- OTHER WCF LIBRARY SETTING STUFF -->
    
    
      <applicationSettings>
        <WcfServiceLibrary1.Properties.Settings>
          <setting name="Setting1" serializeAs="String">
            <value>temp1</value>
          </setting>
        </WcfServiceLibrary1.Properties.Settings>   </applicationSettings> </configuration>
    

    在我的 WCF 服务中,我会复制这些感兴趣的行(部分和设置):

     <?xml version="1.0"?>
    <configuration>
    
      <!-- Copied to WCF Service Web.config -->
      <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
          <section name="WcfServiceLibrary1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
      </configSections>
    
    
    
              <!-- OTHER WEB CONFIG STUFF -->
    
    
      <!-- Copied to WCF Service Web.config -->
      <applicationSettings>
        <WcfServiceLibrary1.Properties.Settings>
          <setting name="Setting1" serializeAs="String">
            <value>temp1</value>
          </setting>
        </WcfServiceLibrary1.Properties.Settings>
      </applicationSettings>
    
    </configuration>
    

    [编辑] 这可以无缝运行,您将在库中获得如下设置:`Properties.Settings.Default.Setting1'。这是在自动生成的内部类中,因此要访问服务中“Setting1”的值,您可以通过一个简单的类公开它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-28
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多