本文整理汇总了C#中System.Data.Common.DbConnection.ExecuteScalarAsync方法的典型用法代码示例。如果您正苦于以下问题:C# DbConnection.ExecuteScalarAsync方法的具体用法?C# DbConnection.ExecuteScalarAsync怎么用?C# DbConnection.ExecuteScalarAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Common.DbConnection
的用法示例。
在下文中一共展示了DbConnection.ExecuteScalarAsync方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteAsync
public override async Task ExecuteAsync(DbConnection connection, DbTransaction transaction)
{
var dialect = SqlDialectFactory.For(connection);
var type = Index.GetType();
var documentTable = CollectionHelper.Current.GetPrefixedName(Store.DocumentTable);
if (Index is MapIndex)
{
var sql = Inserts(type) + $" {dialect.IdentitySelectString} id";
Index.Id = await connection.ExecuteScalarAsync<int>(sql, Index, transaction);
await connection.ExecuteAsync($"update [{_tablePrefix}{type.Name}] set DocumentId = @mapid where Id = @Id", new { mapid = Index.GetAddedDocuments().Single().Id, Id = Index.Id }, transaction);
}
else
{
var reduceIndex = Index as ReduceIndex;
var sql = Inserts(type) + $"; {dialect.IdentitySelectString} id";
Index.Id = await connection.ExecuteScalarAsync<int>(sql, Index, transaction);
var bridgeTableName = type.Name + "_" + documentTable;
var columnList = $"[{type.Name}Id], [DocumentId]";
var parameterList = $"@Id, @DocumentId";
var bridgeSql = $"insert into [{_tablePrefix}{bridgeTableName}] ({columnList}) values ({parameterList});";
await connection.ExecuteAsync(bridgeSql, _addedDocumentIds.Select(x => new { DocumentId = x, Id = Index.Id }), transaction);
}
}
示例2: ExecuteAsync
public override async Task ExecuteAsync(DbConnection connection, DbTransaction transaction)
{
var dialect = SqlDialectFactory.For(connection);
var insertCmd = $"insert into [{_tablePrefix}Document] ([Id], [Type]) values (@Id, @Type);";
await connection.ExecuteScalarAsync<int>(insertCmd, Document, transaction);
}