Reputation: 15807
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
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