Dapper Orm supprimer l'exception

c# dapper

Question

Je suis en train de supprimer avec dapper orm. Mais je fais cette exception:

Lorsque vous utilisez les API multi-mapping, assurez-vous de définir le paramètre splitOn si vous avez des clés autres que Id

Mon code est indiqué ci-dessous:

public void DeleteRole(int ID)
    {
        using (var conn = new SqlConnection(connectionString))
        {
            conn.Open();
            conn.Query("DELETE FROM [Role] WHERE ID=@ID", new {ID=ID });
        }
    }

Une idée?

Réponse acceptée

Le problème ici est que vous utilisez Query au lieu de Execute . La méthode Query tente de trouver une colonne nommée Id pour générer le jeu de résultats et ne peut pas le faire car il ne s'agit pas d'une requête.


Réponse populaire

Indiquez le type de retour pour la requête (entier)

int rowsCount = conn.Query<int>("DELETE FROM [Role] WHERE ID = @ID", new { ID });

Ou utilisez la méthode Execute, comme Michael l'a souligné

REMARQUE: vous n'avez pas besoin d'ouvrir la connexion manuellement - Dapper l'ouvrira pour vous.

BTW requête générique fonctionnera pour votre question d'origine:

int id = conn.Query<int>(@"INSERT [Role] (Name, CreatedDate,UpdatedDate) 
                           VALUES (@Name, @CreatedDate,@UpdatedDate) 
                           SELECT CAST(scope_identity() as INT)", model).First();


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