使用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; } }
问题
我想这是几个我不理解的问题
- 我需要“设置
base
这样做的DbContext
? - 我需要
base
我正在做的事情吗? - 会
: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