Ниже приведены общие рекомендации, применимые к большинству ADO. NET поставщиков; он не принимает во внимание какие-либо особенности или нюансы MySQL (потому что я не пользователь MySQL)
Если параметры хранимой процедуры точно соответствуют свойствам на user
, тогда вы сможете чтобы сделать это просто как a 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);