Comment ignorer certaines propriétés dans Dapper?

c# dapper

Question

J'ai une classe simple comme celle-ci:

public class User
{
    public Guid Id{ get; set; }
    public string UserName { get; set; }
    public byte[] RowVersion { get; set; }
}

La colonne Rowversion dans la tabale Db obtient la valeur automatique

var result = db.Execute("[dbo].[User_Insert]", user, trans,commandType:CommandType.StoredProcedure);

Dapper génère un paramètre pour toutes les propriétés et j'obtiens une erreur comme celle-ci

Procédure ou fonction User_Insert a trop d'arguments spécifiés.

Comment puis-je ignorer le paramètre Rowversion in Dapper?

Mon code de procédure est:

 ALTER PROCEDURE [In4].[User_Insert] 
       @Id         uniqueidentifier,
       @UserName    nvarchar(4000)= NULL   
AS 
BEGIN
   insert into [In4].[Users] ([Id], [UserName])
                 VALUES (@Id, @UserName) 
End

Réponse populaire

Vous pouvez transmettre un objet anonyme avec uniquement les propriétés souhaitées.

var result = db.Execute("[dbo].[User_Insert]", new { user.Id, user.UserName }, trans, commandType:CommandType.StoredProcedure);

Vous pouvez également utiliser les extensions Dapper Contrib et créer une classe de mappage qui vous permet d'ignorer des propriétés spécifiques.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi