使用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级别中发生了什么,我将启用如下日志记录,

  1. 在您的dbcontext、中添加如下日志记录

    public static readonly ILoggerFactory loggerFactory=new loggerFactory(new[]{新控制台记录器提供程序((_,__(=>真,真(});

  2. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder({选项Builder.UseLoggerFactory(loggerFactory(.EnableSentiveDataLogging((
    .UseSqlServer(@"连接字符串"(;}

  3. 然后,您将看到登录控制台的每一行。

p.S:请安装Microsoft.Extensions.Loggin.Console nuget包

感谢

非常感谢大家的回答,但我按照以下解决了问题

var result = context.Database.ExecuteSqlRaw(store_pocedure, queryParams);

最新更新