c# - 带有 EF 网络核心的执行过程 Mysql
问题描述
我尝试使用以下函数执行存储过程,但表没有更新,也没有显示错误,你能帮帮我吗
public static void UpdateShareDate(string Sharepath, string ShareDate, int TransactionID, int Clientid)
{
try
{
using (var context = new AppDBContext())
{
MySqlConnector.MySqlParameter[] queryParams = new MySqlConnector.MySqlParameter[] {
new MySqlConnector.MySqlParameter("@p1", Sharepath),
new MySqlConnector.MySqlParameter("@p2", ShareDate),
new MySqlConnector.MySqlParameter("@p3", TransactionID),
new MySqlConnector.MySqlParameter("@p4", Clientid)
};
string store_pocedure = "call MediaFile_Update(@p1,@p2,@p3,@p4)";
var result = context.DBSetMediaFiles.FromSqlRaw(store_pocedure, queryParams);
}
}
catch (Exception ex)
{
throw;
}
}
解决方案
在这种情况下我会做什么来查看 DbContext 级别发生了什么,我将启用如下所示的日志记录,
在您的 dbcontext 中添加如下日志记录,
公共静态只读 ILoggerFactory loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider((_, __) => true, true) });
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseLoggerFactory(loggerFactory) .EnableSensitiveDataLogging()
.UseSqlServer(@"Connection string"); }然后你会看到用每一行登录控制台。
PS:请安装 Microsoft.Extensions.Loggin.Console nuget 包
谢谢
推荐阅读
- python - 在Python中逐行写入镶木地板
- c# - 在第 0 行的“C:\”中找不到路径的一部分
- android - NavigationComponent 无法更改 ActionBar 颜色
- onedrive - 如何使用 OneDrive API 上传到共享文件夹?
- flutter - 如何处理对 showTimePicker 的 cta 的点击
- java - 将持久性 SQL 命令执行到 h2db 时出现 H2 JDBC 语法错误
- vue.js - 如何在 VueJs 中单击时隐藏可折叠的 Bootstrap 导航栏
- typescript - 检测超出枚举范围的比较
- c++ - libfuzzer 中的单例
- konvajs - 将组添加到多个图层