Csharp/C#教程:使用Base类将字符串传递给DbContext的构造函数不会设置该值分享


使用Base类将字符串传递给DbContext的构造函数不会设置该值

我决定不再需要对我的DbContext类进行更改

以前我的代码看起来像这样:

 public class RPMContext : DbContext { public RPMContext() : base(ConnectionString()) { } private static string ConnectionString(string connection) { conn = ConfigurationManager.ConnectionStrings["LH_RPMContext"].ConnectionString; return conn; } } 

在“Works”之上,但我需要能够在一个字符串中进行PASS,我可以将静态方法ConnectionString设置为OTHER指定的连接字符串

因此, 我的新代码开始沿着不使用基础的路径

 public class RPMContext : DbContext { public RPMContext(string environment) { ConnectionString(environment); } private static string ConnectionString(string connection) { string conn; if (connection == "LH") { conn = ConfigurationManager.ConnectionStrings["LH_RPMContext"].ConnectionString; } else { // dev , qa etc.. } return conn; } } 

问题

我想这是几个我不理解的问题

  1. 我需要“设置base这样做的DbContext
  2. 我需要base我正在做的事情吗?
  3. :this()有益吗?

以前我会用private RPMContext db = new RPMContext();实例化private RPMContext db = new RPMContext();

现在RPMContext("LH")和我希望/想要使用的任何字符串。

显然,使用当前代码,我得到“使用未分配的局部变量conn”

你正在给自己不必要的工作。

DbContext已经有一个构造函数,它接受完整的连接字符串或配置文件中的连接字符串的名称。

 public class RPMContext : DbContext { public RPMContext(string nameOrConnectionString) :base(nameOrConnectionString) { } } 

例如,如果您的配置文件中包含以下内容

         

您可以通过提供要使用的名称连接来创建所需的DbContext。

 var db = new RPMContext("name=LH_RPMContext"); var dev_db = new RPMContext("name=DEV_RPMContext"); var qa_db = new RPMContext("name=QA_RPMContext"); 

或者……基于你以前的一些post,你可以做这样的事……

上述就是C#学习教程:使用Base类将字符串传递给DbContext的构造函数不会设置该值分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 public class RPMContext : DbContext { public RPMContext() :this(string.Format("name={0}_RPMContext",ConfigurationManager.AppSettings["Environment"])){} public RPMContext(string nameOrConnectionString) :base(nameOrConnectionString) { } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/985368.html

(0)
上一篇 2021年12月21日
下一篇 2021年12月21日

精彩推荐