如何在mvc4中区分连接等的调试和发布

2024-01-20

所以我对 MVC4 相当陌生,很多模式对我来说都是新的。

然而,我好奇的一件事是关于发布/调试模式的最佳实践。 对我来说,实时模式和调试模式之间有很多不同的事情,我希望所有这些都是自动的,这样我就不需要更改任何内容来发布。

例如,我在我的存储库(域项目)中这样做了 公共类 EFAccountRepository :IAccountRepository { 私有 EFDbContext _context;

    public EFAccountRepository()
    {
#if DEBUG
        _context = new EFDbContext("name=Debug");
#else
        _context = new EFDbContext("name=Live");
#endif
    }

在我的 DI (webui) 中就像这样

#if DEBUG
        EFDbContext efcontext = new EFDbContext("name=Debug");
#else
        EFDbContext efcontext = new EFDbContext("name=Live");
#endif

或者简单地拥有会更聪明吗?

EFDbContext efcontext = new EFDbContext("name=MyApp");

然后用web.config改变MyApp是什么意思?

热烈欢迎任何其他自动化调试/发布发布的技巧。


我强烈建议不要将连接字符串硬编码到代码中。请考虑将您的代码指向 web.config 转换。您可以在此处添加连接字符串,并根据代码的版本应用适当的转换,以便您只需在应用程序中使用以下代码即可覆盖所有环境。

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString

在调试版本中你可能有类似的东西

<configuration xmlns:xdt="...">
    <connectionStrings>
      <add name="MyConnectionString" connectionString="debugstring"
         providerName="debugprovider" />
     </connectionStrings>
</configuration>

在您的发行版本中,您可以告诉转换来替换旧字符串,如下所示

<configuration xmlns:xdt="...">
    <connectionStrings>
      <add name="MyConnectionString" connectionString="newstring"
         providerName="newprovider"
         xdt:Transform="Replace" />
     </connectionStrings>
</configuration>

更多参考请查看http://msdn.microsoft.com/en-us/library/dd465326.aspx http://msdn.microsoft.com/en-us/library/dd465326.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在mvc4中区分连接等的调试和发布 的相关文章

随机推荐

  • 古怪的 __set() 魔术函数

    谁能向我解释一下这种行为的逻辑吗 考虑以下情况 class EPPDomain protected myField public static function buildEPPDomain fieldValue me new self m
  • Select2:未捕获类型错误:options.results 不是函数

    我正在尝试使用 Select2 jquery 插件进行 AJAX 调用 查询似乎有效 但问题发生在 results 被称为options object Uncaught TypeError options results is not a
  • 默认变量值

    如果我在声明变量时没有为其赋值 那么它是否默认为零或只是内存中先前的值 e g float x 声明的变量可以是零初始化 值初始化 or 默认初始化 C 03 标准 8 5 5 恰当地定义了以下各项 To 零初始化T 类型的对象意味着 如果
  • 使用SimpleXmlElement和symfony2输出xml文件

    rootNode new SimpleXMLElement
  • OpenMP 如何重用线程

    我认为线程的创建和删除可能代价高昂 OpenMP 是否尝试重用现有线程 例如 pragma omp parallel sections num threads 4 pragma omp section worker A pragma omp
  • Rust 中连接向量的最佳方法是什么?

    是否有可能在 Rust 中连接向量 如果是这样 有没有一种优雅的方式来做到这一点 我有这样的事情 let mut a vec 1 2 3 let b vec 4 5 6 for val in b a push val 有谁知道更好的方法吗
  • 从 hIcon/hBitmap 获取字节/char*

    我正在开发一个C S应用程序 C 中的服务器和C 中的客户端 我需要发送一些有关当前正在运行的进程和相关图标的信息 我得到了图标文件感谢EnumWindows将此代码放在回调中 Get the window icon HICON hIcon
  • Angular - 不纯管道与函数

    我正在 Angular2 中的数组上实现过滤操作 当数组中的元素发生更改时 纯管道不会触发 因此 我必须使用不纯的管道或使用组件内部的函数进行过滤 如下所示 ngFor let item of items impureFilterPipe
  • 如何正确地从 Promise 返回多个值?

    我最近多次遇到某种情况 不知道如何正确解决 假设以下代码 somethingAsync then afterSomething then afterSomethingElse function afterSomething amazingD
  • 颁发身份超级账本作曲家时授权失败

    我阅读了建议检查 docker yaml 的答案 文件路径如下 我确认用户名是admin 密码是adminpw 不幸的是我仍然收到授权失败错误 我用来发布身份的命令 composer identity issue n trade netwo
  • 如何以 1 秒的间隔更新组件?

    我在戴尔面试时被问到这个问题 new Date 给你一个Date使用当前日期 时间初始化的对象 假设我的屏幕右上角显示当前时间 并且有人这样做了
  • InApp 计费验证 Web 服务器 PHP 上的订单

    我正在使用一个简单的 PHP 脚本来验证 Android 订单以解析客户的下载 receipt GET purchaseData billInfo json decode receipt true signature GET dataSig
  • stack --nix build 抱怨 ghc 版本不匹配

    在 NixOS 上构建 Threepenny gui 时stack nix build 我收到错误消息 说我的 ghc 版本错误 然后我尝试了stack nix setup 它不会运行 因为 bash 位于 NixOS 上的意外路径上 这是
  • Matlab 2012a Mex 在 Mountain Lion 上与 Xcode 4.5 配合使用

    我安装了 Mountain Lion 并安装了 Xcode 4 5 和 Matlab 2012a 我安装并运行了 MathWorks 网站上提供的补丁 但仍然收到以下错误 Applications MATLAB R2012a app bin
  • 在 iOS 8 上点击或选择输入字段中的所有内容时,光标超出边框

    IOS8有这个问题 IOS7没有 我有一个输入标签 其内容的长度大于其宽度
  • MMC进程立即关闭,无法链接到Windows窗体

    我想做的最终目标是将 MMC Microsoft 管理控制台 计算机管理管理单元 compmgmt msc 进程嵌入到 Windows 窗体中 或者将其视为模态弹出窗口的解决方法上菜单 现在 我只是想让 mmc exe 本身正常工作 然后再
  • 为什么应该在 LINQ To SQL 存储库保存方法中使用 GetOriginalEntityState()?

    我正在查看 Steven Sanderson 的 Pro ASP NET MVC 2 Framework 一书中的产品存储库中的保存方法示例 public void SaveProduct Product product if new pr
  • Google Cloud SQL 实例无响应,如何获得支持?

    当谈到数据库时 我们希望将管理它们的工作交给专业人士 这就是为什么我们选择 CloudSQL 第二代数据库实例形式的托管解决方案 今天实例停止响应 我单击了重新启动 它已经重新启动了几个小时并且没有响应 我尝试克隆实例 也没有响应 我不知道
  • Rails 3.2 和phonegap

    我当前正在运行一个rails应用程序 我想为其制作一个移动应用程序 我不想学习objective c或java 我读了很多关于phonegap的文章以及如何使用它来制作跨平台Web应用程序 Phonegap编译css htm js Rail
  • 如何在mvc4中区分连接等的调试和发布

    所以我对 MVC4 相当陌生 很多模式对我来说都是新的 然而 我好奇的一件事是关于发布 调试模式的最佳实践 对我来说 实时模式和调试模式之间有很多不同的事情 我希望所有这些都是自动的 这样我就不需要更改任何内容来发布 例如 我在我的存储库