Banshee
Banshee

Reputation: 15807

Provide multiple parameters with dapper?

I have this code:

public void SaveBoardgameCollection(BoardgameCollection boardgameCollection)
{
    if (boardgameCollection?.BoardgameUserStatusList.Count > 0)
    {
        using (IDbConnection connection = new SqlConnection(_databaseConnectionString.ConnectionString))
        {
            connection.Execute("dbo.BoardgameCollectionInsert @BoardGameComment, @Own, @ForTrade, @Want, @WantToPlay, @WantToBuy, @WishList, @Grade, @GameId, @PreOrdered, @PrevOwned", boardgameCollection.BoardgameUserStatusList);
        }
    }
}

Say that the SP now demands another parameter that BoardgameUserStatusList objects does not contain. How can I provide this in the same Execute, for example a User Id(GUID)?

Edit:

If I do this:

queryParameters = new DynamicParameters();
queryParameters.Add("@MyParameter1", boardgameCollection.BoardgameUserStatusList);
queryParameters.Add("@MyParameter2", System.Guid.NewGuid());
//@BoardGameComment, @Own, @ForTrade, @Want, @WantToPlay, @WantToBuy, @WishList, @Grade, @GameId, @PreOrdered, @PrevOwned
connection.Execute("dbo.BoardgameCollectionInsert ", queryParameters);

I will get a NotSupportedException that says that the BoardgameUserStatus(object in BoardgameUserStatusList cannot be used as a parameter value?

Upvotes: 3

Views: 13149

Answers (1)

dmoore1181
dmoore1181

Reputation: 2102

Have you tried using a dynamic parameter? Here is a simple example.

var parameters = new DynamicParameters();
parameters.Add("@MyParameter", value);
parameters.Add("@MySecondParameter", value2);

using (IDbConnection connection = new SqlConnection(_databaseConnectionString.ConnectionString))
{
    db.ExecuteAsync("dbo.BoardgameCollectionClear", parameters, commandType: CommandType.StoredProcedure);
}

Upvotes: 9

Related Questions