如何在mvc4中分离调试和释放连接等



所以我是一个相当新的MVC4和许多模式对我来说是新的。

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

例如,我在repo(域名项目)中这样做公共类efaccountrerepository: iaccountrerepository{private EFDbContext _context

    public EFAccountRepository()
    {
#if DEBUG
        _context = new EFDbContext("name=Debug");
#else
        _context = new EFDbContext("name=Live");
#endif
    }
在我的DI (web)
#if DEBUG
        EFDbContext efcontext = new EFDbContext("name=Debug");
#else
        EFDbContext efcontext = new EFDbContext("name=Live");
#endif

还是直接写

更聪明?
EFDbContext efcontext = new EFDbContext("name=MyApp");

然后用web改变。配置转换MyApp是什么意思?

如果您有其他关于自动调试/发布的建议,我们也欢迎。

我强烈建议不要将连接字符串硬编码到代码中。请考虑将代码指向web。配置转换。你可以在那里添加连接字符串,根据代码的版本,可以应用适当的转换,这样你只需要在应用中使用下面的代码一次,就可以覆盖所有的环境。

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

如果有多个连接字符串,所选答案将不起作用。在发布版中,为所有connectionstrings添加以下标签

xdt:变换="SetAttributes"xdt:定位器= "匹配(名字)"

这是我在Web配置文件中的内容

在Web.Debug.Config

<add name="MyConnectionString" 
    connectionString="Data Source=dev;Initial Catalog=DevDB;Integrated Security=True;
    providerName="System.Data.SqlClient"/>

和Web.Release.Config

<add name="MyConnectionString" 
    connectionString="Data Source=LIVESERVER;Initial Catalog=DB98;Integrated Security=True;
    providerName="System.Data.SqlClient" 
    xdt:Transform="SetAttributes" 
    xdt:Locator="Match(name)"/>

使用web。配置转换http://msdn.microsoft.com/en-us/library/dd465326.aspx

相关内容

  • 没有找到相关文章

最新更新