本文整理汇总了C#中System.Data.Common.DbConnection.QueryAsync方法的典型用法代码示例。如果您正苦于以下问题:C# DbConnection.QueryAsync方法的具体用法?C# DbConnection.QueryAsync怎么用?C# DbConnection.QueryAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Common.DbConnection
的用法示例。
在下文中一共展示了DbConnection.QueryAsync方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateUserSocialsAsync
private async Task UpdateUserSocialsAsync(DbConnection context, DbTransaction transaction, User user)
{
var userSocials = await context.QueryAsync<UserSocial>("SELECT * FROM UserSocials WHERE Username = @Username",
new { user.Username }, transaction);
await context.ExecuteAsync("DELETE FROM UserSocials WHERE Username = @Username and SocialId = @SocialId;",
userSocials.Where(
u => user.Socials.All(s => u.SocialId != s.SocialId)),
transaction);
await context.ExecuteAsync(
"UPDATE UserSocials set Site = @Site, Url = @Url WHERE Username = @Username and SocialId = @SocialId;",
user.Socials, transaction);
await context.ExecuteAsync("INSERT UserSocials(Username,Site,Url) VALUES(@Username,@Site,@Url);",
user.Socials.Where(
s => userSocials.All(u => s.Username != u.Username && u.SocialId != s.SocialId)).Select(s => new { user.Username, s.Site, s.Url }),
transaction);
}
示例2: UpdateBreweryMembersAsync
private async Task UpdateBreweryMembersAsync(DbConnection context, DbTransaction transaction, Brewery brewery)
{
var breweryMembers = await context.QueryAsync<BreweryMember>(
"SELECT * FROM BreweryMembers WHERE BreweryId = @BreweryId", new { brewery.BreweryId }, transaction);
await context.ExecuteAsync("DELETE FROM BreweryMembers WHERE BreweryId = @BreweryId and MemberUsername = @MemberUsername;",
breweryMembers.Where(bm => brewery.Members.All(m => bm.MemberUsername != m.MemberUsername)).Select(bm => new { brewery.BreweryId, bm.MemberUsername }), transaction);
await context.ExecuteAsync(
"UPDATE BreweryMembers set Role = @Role, Confirmed = @Confirmed WHERE BreweryId = @BreweryId and MemberUsername = @MemberUsername;",
brewery.Members.Where(m => breweryMembers.Any(bm => m.MemberUsername == bm.MemberUsername)), transaction);
await context.ExecuteAsync("INSERT BreweryMembers(BreweryId,MemberUsername,Role,Confirmed) VALUES(@BreweryId,@MemberUsername,@Role,@Confirmed);",
brewery.Members.Where(m => breweryMembers.All(bm => m.MemberUsername != bm.MemberUsername)).Select(bm => new { brewery.BreweryId, bm.MemberUsername,bm.Role,bm.Confirmed }), transaction);
}
示例3: UpdateBrewerySocialsAsync
private async Task UpdateBrewerySocialsAsync(DbConnection context, DbTransaction transaction, Brewery brewery)
{
var brewerySocials = await context.QueryAsync<BrewerySocial>("SELECT * FROM BrewerySocials WHERE BreweryId = @BreweryId",
new { brewery.BreweryId }, transaction);
await context.ExecuteAsync("DELETE FROM BrewerySocials WHERE BreweryId = @BreweryId and SocialId = @SocialId;",
brewerySocials.Where(
u => brewery.Socials.All(s => u.SocialId != s.SocialId)),
transaction);
await context.ExecuteAsync(
"UPDATE BrewerySocials set Site = @Site, Url = @Url WHERE BreweryId = @BreweryId and SocialId = @SocialId;",
brewery.Socials, transaction);
await context.ExecuteAsync("INSERT BrewerySocials(BreweryId,Site,Url) VALUES(@BreweryId,@Site,@Url);",
brewery.Socials.Where(
s => brewerySocials.All(u => u.SocialId != s.SocialId)).Select(s => new { brewery.BreweryId, s.Site, s.Url }),
transaction);
}
示例4: GetNodeIPMap
public async Task<List<Tuple<string, IPAddress>>> GetNodeIPMap(DbConnection conn)
{
var ipList = await conn.QueryAsync<string, string, Tuple<string, string>>(
@"Select Cast(NodeID as varchar(50)) NodeID, IPAddress From NodeIPAddresses",
commandTimeout: QueryTimeoutMs,
map: Tuple.Create,
splitOn: "IPAddress");
var result = new List<Tuple<string, IPAddress>>();
foreach (var entry in ipList)
{
IPAddress addr;
if (!IPAddress.TryParse(entry.Item2, out addr)) continue;
result.Add(Tuple.Create(entry.Item1, addr));
}
return result;
}
示例5: UpdateAromaWheelAsync
private async Task UpdateAromaWheelAsync(DbConnection context, SqlTransaction transaction, Hop hop)
{
var aromaWheels = (await context.QueryAsync<HopFlavour>(@"SELECT * FROM HopAromaWheels WHERE HopId = @HopId", new { hop.HopId },
transaction)).ToList();
var toDelete = aromaWheels.Where(h => hop.AromaWheel.All(f => f.FlavourId != h.FlavourId));
await context.ExecuteAsync("DELETE FROM HopAromaWheels WHERE HopId = @HopId and FlavourId = @FlavourId;",
toDelete.Select(h => new { h.HopId, h.FlavourId }), transaction);
var toAdd = hop.AromaWheel.Where(h => aromaWheels.All(f => f.FlavourId != h.FlavourId));
await context.ExecuteAsync(@"INSERT HopAromaWheels(FlavourId, HopId) VALUES(@FlavourId,@HopId);", toAdd.Select(h => new { h.HopId, h.FlavourId }), transaction);
}
示例6: UpdateHopSubstituteAsync
private async Task UpdateHopSubstituteAsync(DbConnection context, SqlTransaction transaction, Hop hop)
{
var hopSubstitutes = (await context.QueryAsync<Substitute>(@"SELECT * FROM Substitute WHERE HopId = @HopId",
new { hop.HopId }, transaction)).ToList();
var toDelete = hopSubstitutes.Where(h => hop.Substituts.All(s => s.HopId != h.HopId && h.SubstituteId != s.HopId));
await context.ExecuteAsync("DELETE FROM Substitute WHERE HopId = @HopId", toDelete, transaction);
var toAdd = hop.Substituts.Where(h => hopSubstitutes.All(s => s.HopId != h.HopId && h.HopId != s.SubstituteId)).Select(c => new Substitute { HopId = hop.HopId, SubstituteId = c.HopId });
await context.ExecuteAsync(@"INSERT Substitute(SubstituteId, HopId) VALUES(@SubstituteId,@HopId);", toAdd, transaction);
}