用dapper提供多个参数?

时间:2019-03-06 20:42:44

标签: c# sql-server dapper

我有以下代码:

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);
        }
    }
}

说SP现在需要另一个BoardgameUserStatusList对象不包含的参数。如何在同一Execute中提供此代码,例如用户ID(GUID)?

编辑:

如果我这样做:

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);

我将收到一个NotSupportedException,它指出BoardgameUserStatus(BoardgameUserStatusList中的对象不能用作参数值?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用动态参数?这是一个简单的例子。

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);
}