This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static class TagWithExtensions | |
{ | |
public static IQueryable<T> TagWithContext<T>(this IQueryable<T> queryable, string? message = "", [CallerFilePath] string callerFileName = "", [CallerMemberName] string callerName = "") | |
{ | |
string logScopeName = GenerateLogScopeName(message, callerFileName, callerName); | |
return queryable.TagWith(logScopeName); | |
} | |
private static string GenerateLogScopeName(string? message = null, string callerFileName = "", string callerName = "") | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task InsertTweetStoreProc(string username, string message, CancellationToken ct = default) | |
{ | |
using (_logger.BeginScope(new Dictionary<string, object> { { "EFQueries", "GetTweetsLog" } })) | |
{ | |
_ = await _context.Database | |
.ExecuteSqlRawAsync( | |
"InsertTweet @Username, @Message", | |
new SqlParameter("Username", username), | |
new SqlParameter("Message", message)); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@EventType = 0xE9507561 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task InsertTweetStoreProc(string username, string message, CancellationToken ct = default) | |
{ | |
using (_logger.BeginScope(new Dictionary<string, object> { { "EFQueries", "InsertTweetStoreProc" } })) | |
{ | |
_ = await _context.Database | |
.ExecuteSqlRawAsync( | |
"InsertTweet @Username, @Message", | |
new SqlParameter("Username", username), | |
new SqlParameter("Message", message)); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
param( | |
[Parameter()] | |
[ValidateNotNullOrEmpty()] | |
[string] $ResourceGroup = $null, | |
[Parameter()] | |
[ValidateNotNullOrEmpty()] | |
[string] $ResourceLocation = 'EastUS', | |
# F0 is free and S0 is paid SKU |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task<IEnumerable<Tweet>> GetTweetsWithExtraLogs(CancellationToken ct = default) | |
{ | |
using (_logger.BeginScope(new Dictionary<string, object> { { "EFQueries", "GetTweetsLog" } })) | |
{ | |
return await _context.Tweets | |
.TagWith("GetTweets + LogContext") | |
.ToListAsync(ct) | |
.ConfigureAwait(false); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public Task InsertTweetStoreProc(string username, string message, CancellationToken ct = default) | |
{ | |
using (_logger.BeginScope(new Dictionary<string, object> { { "EFQueries", "InsertTweetStoreProc" } })) | |
{ | |
_ = _context.Tweets | |
.FromSqlRaw( | |
"InsertTweet @Username, @Message", | |
new SqlParameter("Username", username), | |
new SqlParameter("Message", message)) | |
// A hack to make STORE PROC work when they don't return anything. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task InsertTweet(string username, string message, CancellationToken ct = default) | |
{ | |
using (_logger.BeginScope(new Dictionary<string, object> { { "EFQueries", "InsertTweet" } })) | |
{ | |
_context.Tweets.Add(new Tweet | |
{ | |
Username = username, | |
Message = message, | |
CreatedUtc = DateTime.UtcNow | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using (_logger.BeginScope(new Dictionary<string, object> { { "EFQueries", "GetTweets" } })) | |
{ | |
var tweets = await _twitterService.GetTweets(ct); | |
} | |
// Same query as before. | |
public async Task<IEnumerable<Tweet>> GetTweets(CancellationToken ct = default) | |
{ | |
return await _context.Tweets | |
.ToListAsync(ct) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task<IEnumerable<Tweet>> GetTweetsWithQueryTags(CancellationToken ct = default) | |
{ | |
return await _context.Tweets | |
.TagWith("GetTweets") | |
.ToListAsync(ct) | |
.ConfigureAwait(false); | |
} |
NewerOlder