c# - EF6:调用 ExecuteSqlCommand 后 DbContext.Database.Connection.ConnectionString 发生变化
问题描述
我在 EF6 观察到一个奇怪的行为DbContext
。我的自定义DbContext
类从我的 App.config 中读取其连接字符串:
public partial class WorkobjectContext : DbContext
{
public WorkobjectContext()
: base("name=MainConnectionString")
{
// Set the initializer to null to disable intializtion otherwise EF tries to create the table if it does not exist (CreateDatabaseIfNotExists)
Database.SetInitializer<WorkobjectContext>(null);
}
}
当我为我的 Ado.NET 函数使用相同的连接字符串时,我尝试从以下内容中读取连接字符串DbContext
:
var connectionstring = this.MyContext.Database.Connection.ConnectionString;
但现在我正在观察this.MyContext.Database.Connection.ConnectionString
我所说的变化ExecuteCommand
:
...
Console.WriteLine(this.WorkobjectContext.Database.Connection.ConnectionString);
// Output: DATA SOURCE=XXXX:1000/XXXX.XXXX;PASSWORD=MyPassword;USER ID=MyUserId
var ret = this.WorkobjectContext.Database.ExecuteSqlCommand(
"BEGIN WPK_Inbox.Check_WOB_User(:pn_UserID, :pn_WOBID, :pn_Return, :pvErrorMsg, :pnErrorCode); end;",
new object[]
{
userIdParameter,wobIdParameter,returnValueParameter,errorMsgParameter,errorCodeParameter
}
);
Console.WriteLine(this.WorkobjectContext.Database.Connection.ConnectionString);
// Output: DATA SOURCE=XXXX:1000/XXXX.XXXX;PUSER ID=MyUserId
如您所见,调用ExecuteSqlCommand
连接字符串后,密码部分消失了。
为什么会这样?这是一个错误吗?
解决方案
推荐阅读
- laravel - (S)类似于 SVN 的 FTP(上传更改的文件)
- replicate - 在没有 SOURCE_LOOKUP 的情况下更改 CLOB
- apache-spark - 在两个列列表上执行复杂聚合?
- javascript - WordPress - 如何将自定义类添加到子菜单
- 标签
- python - 将 pandas 时间索引拆分为具有可变时差的连续组
- javascript - 在 Angular Reactive Form 中读取 Checkbox FormControl 值
- swift - IOS FirebaseUI 登录自定义
- schemacrawler - 如果没有引用外键约束,则不显示图形连接
- c++ - 通过在给定列表中的总和等于给定整数的列表中查找一对项目的代码得到错误的输出
- awk - 将(各种大小的)行拆分为两列,保持列中的第一个单词