我正在嘗試在我的 ASP.Net 核心 5 API 中從 MySql 資料庫執行存盤程序。
我的資料庫背景關系:
public class SharedDBContext : BaseDbContext
{
#region Variables
private readonly BaseUserContext _currentUserContext;
#endregion Variables
public SharedDBContext(DbContextOptions<SharedDBContext> options, BaseUserContext userContext) : base(options, userContext)
{
this._currentUserContext = userContext;
}
public void AddAuditTrail(int userAccountId, string actionName, bool isError, string description, string details)
{
List<MySqlParameter> paramList = new List<MySqlParameter>();
paramList.Add(new MySqlParameter("userAccountId", userAccountId));
paramList.Add(new MySqlParameter("actionName", actionName));
paramList.Add(new MySqlParameter("isError", isError));
paramList.Add(new MySqlParameter("description", description));
paramList.Add(new MySqlParameter("details", details));
paramList.Add(new MySqlParameter("createdDate", DateTime.UtcNow));
this.Database.ExecuteSqlRaw($"AuditTrail_INSERT @PARAMS", paramList);
}
}
我的服務類是:
public class AuditTrailService : IAuditTrailService
{
private readonly SharedDBContext _dBContext;
public AuditTrailService(SharedDBContext dBContext)
{
_dBContext = dBContext;
}
public void AddAuditTrail(int userAccountId, string actionName, bool isError, string description, string details)
{
_dBContext.AddAuditTrail(userAccountId, actionName, isError, description, details);
}
}
我確保在啟動時依賴注入服務。
最后,在我的 API 中,當我嘗試呼叫 AddAuditTrail 函式時,我收到以下錯誤:
{“無法將“MySql.Data.MySqlClient.MySqlParameter”型別的物件轉換為“MySqlConnector.MySqlParameter”型別。”}
我的存盤程序:
CREATE DEFINER=`admin`@`%` PROCEDURE `AuditTrail_INSERT`(
userAccountId int,
actionName VARCHAR(30),
isError TINYINT(1),
description VARCHAR(1024),
details VARCHAR(1024),
createdDate DATETIME(6)
)
BEGIN
INSERT INTO base_auditTrail(
UserAccountId, ActionName, IsError, Description, Details,
CreatedBy, ModifiedBy, CreatedDate, ModifiedBy, IsDeleted,
DeletedDate, DeletedBy
)
VALUES(userAccountId, actionName, isError, description, details, null, null,
createdDate, null, 0, null, null);
END
uj5u.com熱心網友回復:
MySqlParameter存在于 2 個命名空間中:MySql.Data.MySqlClient和MySqlConnector. 你需要后者。查看檔案頂部的 using 陳述句并替換using MySql.Data.MySqlClient;為using MySqlConnector;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/483047.html
