使用 dapper 提供多个参数?

Ban*_*hee 2 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

假设 SP 现在需要另一个 BoardgameUserStatusList 对象不包含的参数。我如何在同一个执行中提供它,例如用户 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);
Run Code Online (Sandbox Code Playgroud)

我会得到一个 NotSupportedException,说明 BoardgameUserStatus(BoardgameUserStatusList 中的对象不能用作参数值?

dmo*_*181 5

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

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);
}
Run Code Online (Sandbox Code Playgroud)