- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个使用 DataModel.edmx 访问 Dev 数据库的 Windows 应用程序,它工作正常。为了访问舞台环境数据库,我添加了另一个 StageDataModel.edmx。所以app.config中有两个连接字符串: 和如何根据环境在 app.config 中切换数据库?
提前致谢!
最佳答案
通常它应该是相反的方式——为每个环境创建一个 EF edmx 模型和两个(或更多)配置文件。
在我的工作中,我们有三种环境:
对于这三个环境,我们有三个数据库,它们(几乎)彼此相似。我们从 DEV 数据库创建模型。每个与数据库通信的项目始终具有三个具有不同凭据的连接字符串。
为了实现这一目标,您需要:
1) 使用 Visual Studio 配置管理器 创建不同的构建平台(在我的示例中,有三种构建配置 - Dev/Stage/Release):
2) 从app.settings
文件中提取 连接字符串配置。不要在 app.settings
文件中指定连接,而是像这样使用 configSource
参数(app.config 看起来像这样):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings configSource="App.ConnectionStrings.Config" />
</configuration>
3) 现在为每个构建配置创建不同的文件,以每个构建配置命名(措辞必须准确!)并包含不同的服务器或数据库
App.ConnectionStrings.Debug.config
App.ConnectionStrings.Stage.config
App.ConnectionStrings.Release.config
例如,Debug 可能如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="Named.ConnectionString"
connectionString="metadata=res://*/Abstraction.DbDataContext.csdl|res://*/Abstraction.DbDataContext.ssdl|res://*/Abstraction.DbDataContext.msl;provider=System.Data.SqlClient;provider connection string="data source=sql.server.address;initial catalog=People;integrated security=False;user id=DbUser;password=DbPassword;multipleactiveresultsets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
4) 现在在 Visual Studio 中打开您的项目设置,转到 Build Events
并在 Post-Build event command line
中告诉 Visual Studio 进行每次构建以当前选择的构建平台命名的文件,并使用指定的(在 app.config 中)名称将其复制到输出目录:
copy $(ProjectDir)\App.ConnectionStrings.$(ConfigurationName).config $(TargetDir)App.ConnectionStrings.config
现在,当您构建并启动您的应用程序时,配置依赖于构建配置,因此您甚至可以调试连接到 LIVE 环境的应用程序(当当前选择的构建配置是发布
).
有关如何使用外部配置文件和连接字符串的更多信息,请参阅 this MSDN article .
关于c# - 使用 Entity Framework app.config 如何在 Dev、Stage 和 Production 环境之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29950199/
我将多阶段Dockerfile与阶段Build和Start一起使用,如下所示:。我想知道,在Start阶段,我是否需要再次执行Copy--from=Build<...。换句话说,是不是开始重用文件系统
我将多阶段Dockerfile与阶段Build和Start一起使用,如下所示:。我想知道,在Start阶段,我是否需要再次执行Copy--from=Build<...。换句话说,是不是开始重用文件系统
我的作业配置如下,我正在尝试对我的 hadoop 作业进行简单的两步链接, public int run(String[] args) throws Exception { Confi
我正在尝试编写一个简单的方法来切换我的窗口是否最小化(即图标化)。我有奇怪的行为。下面是说明问题的可运行代码。 我在 Gnome 3.20.4 和 XFCE 4.12 上得到了相同的结果。我还没有在任
在 ActionScript 3 (as3) 中 调用 stage.width 和 stage.stageWidth 有什么区别 这是我记得我过去很困惑的事情(Adobe 的 api 文档是一种混淆的
我在新的 Java SDK 11 中基于 this 创建了项目示例: EntryPoint.java package com.example; import javafx.stage.Stage; i
两年半前,Adobe宣布FlashPlayer 10将支持色彩校正。不可否认,该实现实际上是最基本的,因为它将始终假定所有内容均为sRGB编码,并将该内容转换为系统上正在使用的当前显示配置文件。 Th
在as3中调用stage.width和stage.stageWidth有什么区别 我在某处读到,如果舞台上什么都没有,那么 stage.width 的值为 0,但是当我在舞台上什么都没有但在舞台上动态
当我暂存至少一个跟踪文件时,以下 block 起作用。但是当我只暂存未跟踪的文件时,repo.RetrieveStatus().Staged.Count 等于零(我希望它会随着暂存文件的数量增加),因
作为两者 node步和stage步骤提供范围{}语法,在 groovy 代码中定义拓扑的最佳实践是什么? 附件A node ("NodeName") { stage ("a stage ins
我尝试关注 these fairly simple instructions for integrating Static Application Security Testing (SAST)进入我
我尝试关注 these fairly simple instructions for integrating Static Application Security Testing (SAST)进入我
我有一个主舞台,想创建多个额外的舞台 (Windows)。这些就像 Photoshop 中控制主舞台的调色板,但我想要具有标题栏、调整大小和能够将它们拖动到多个监视器上的任何位置的功能(Popup 类
我正在尝试将下面代码中的字符串显示到其他类中的 Pane 。 public WebEngine helloWebEngine(Stage stage) { WebView wv = getWe
package { import flash.display.Stage; public class MyGlobal { public static var CX:Number =
根据我的标题,我的 jenkins 设置收到以下错误: Unknown stage section "stage". Starting with version 0.5, steps in a sta
当您在 ASP.NET Core 站点上的 Visual Studio 中单击“添加 Docker 支持”时,这是默认的多阶段 Dockerfile。 FROM microsoft/aspnetcor
我的问题是:babel-preset-stage-0 之间有什么区别? , babel-preset-stage-1 , babel-preset-stage-2和 babel-preset-stag
我最近对有关“新式”JavaScript 的文章中的以下术语感到困惑: ES6 ES7(有时,尽管很少,ES8 和更大版本) ES2015(有时是 ES2016 及更高版本) 第 0 阶段(和第 1
2014-04-04 16:02:31.633 java[44631:1903] Unable to load realm info from SCDynamicStore 14/04/04 16:0
我是一名优秀的程序员,十分优秀!