[英]Is there a way to call a stored MySQL procedure include insert parameters with Dapper in C#?
public void InsertUser(string firstname, string lastname, string email, string password, int age)
{
using (IDbConnection connection = new MySql.Data.MySqlClient.MySqlConnection(Helper.CnnVal("Database")))
{
List<user> users = new List<user>();
users.Add(new user { Firstname = firstname, Lastname = lastname, Email = email, Password = password, Age = age });
connection.Execute("InsertUserProcedure", @Firstname,@Lastname,@Email,@Password,@Age,users);
}
}
以下是適用於大多數 ADO.NET 供應商的一般指南; 它沒有考慮到任何 MySQL 特性或細微差別(因為我不是 MySQL 用戶)
如果存儲過程參數與user
上的屬性完全匹配,那么您應該能夠簡單地執行此操作;
connection.Execute(
"InsertUserProcedure", users, commandType: CommandType.StoredProcedure);
如果user
的屬性多於存儲過程所需的屬性,則一種方法是通過EXEC
/ CALL
間接調用存儲過程(作為CommandText
,這是默認設置):
connection.Execute(
"EXEC InsertUserProcedure @Firstname,@Lastname,@Email,@Password,@Age", users);
(或與CALL
而不是EXEC
相同,顯然在 MySQL - 見評論)
另一種方法是使用Select
作為投影,允許您直接使用存儲過程,但限制傳入的屬性:
connection.Execute("InsertUserProcedure", users.Select(u => new {
u.Firstname, u.Lastname, u.Email, u.Password, u.Age
}, commandType: CommandType.StoredProcedure);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.