c# - 用 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 对象不包含的另一个参数。我怎样才能在同一个执行中提供这个,例如用户 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 中的对象不能用作参数值?
解决方案
您是否尝试过使用动态参数?这是一个简单的例子。
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);
}
推荐阅读
- django - 在 Django 中将 ProhibitNullCharactersValidator 动态添加到表单的 __init__ 中。需要一个建议
- swift - 使用 Apple Watch 进行振动检测
- excel - 使用开关的问题
- android - ConstraintLayout 中的百分比和权重不起作用
- delphi - 将第 3 方 obj 文件编译为 64 位 Delphi 应用程序 - 异常帧问题
- python - 如何处理启用电报机器人的错误?
- c# - 如何使用 ZXing [ASP.Net WebForm] 直接从手机摄像头读取二维码
- php - Laravel 旧方法不返回密码值
- mysql - 无法在 MariaDB 中显示位字段类型的值
- javascript - 如何使用pentaho从pdf中提取文本?