使用日誌中間件方法
讓我們回到錯誤尚未修復的初始狀態,面對看似正確的查詢,我們都傻眼了。
調試查詢的另一個方法是使用以下擴展方法:
public static IEnumerable<T> LogLINQ<T>(this IEnumerable<T> enumerable, string logName, System.Func<T, string> printMethod)
{
#if DEBUG
int count = 0;
foreach (var item in enumerable)
{
if (printMethod != null)
{
System.Diagnostics.Debug.WriteLine($"{logName}|item {count} = {printMethod(item)}");
}
count++;
yield return item;
}
System.Diagnostics.Debug.WriteLine($"{logName}|count = {count}");
#else
return enumerable;
#endif
}