如何调试空的 LINQ 结果查询?
How to debug an empty LINQ result query?
我在我的存储库中添加了一个查询,用于查询与电子邮件搜索关键字匹配的订单列表。但是当我逐步执行该方法时,尽管电子邮件字符串与存储在我的订单数据库文档 "email": "brianvarley@gmail.com"
中的电子邮件匹配,但我的结果为空
我正在使用 MongoDB.Net driver 与 MongoLabs 存储库通信。我查询所有文档的其他查询都有效,所以似乎不是连接问题。
我尝试将鼠标悬停在 c.Email
上以检查数据库结果,但没有弹出值。
有谁知道如何进一步调试空结果?
这是邮箱查询订单的方法:
public async Task<List<OrderModel>> GetAllByEmailAsync(string email)
{
if (orderList == null)
await LoadDbAsync();
return orderList.Where(c => c.Email == email).ToList();
}
我添加了一个转储来检查 orderList 内容,但显示计数 = 0:
string dump = string.Join(",", orderList.ToString());
这是 LoadDBAsync()
,当我单步执行代码时,由于 OrderList 不为空而跳过此方法:
public async Task LoadDbAsync()
{
var orderCollection = StartConnection();
try
{
orderList = await orderCollection.Find(new BsonDocument()).ToListAsync();
}
catch (MongoException ex)
{
//Log exception here:
MessageBox.Show("A connection error occurred: " + ex.Message, "Connection Exception", MessageBoxButton.OK, MessageBoxImage.Warning);
}
}
以及从 LoadDbAsync 调用的 StartConnection()
:
public IMongoCollection<OrderModel> StartConnection()
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("orders");
//Get a handle on the customers collection:
var collection = database.GetCollection<OrderModel>("customer_orders");
return collection;
}
如果您的列表不是 null
而是空的,它永远不会 return 任何东西...更改您的代码:
public async Task<List<OrderModel>> GetAllByEmailAsync(string email)
{
if (orderList == null || orderList.Count() == 0)
await LoadDbAsync();
return orderList.Where(c => c.Email == email).ToList();
}
我在我的存储库中添加了一个查询,用于查询与电子邮件搜索关键字匹配的订单列表。但是当我逐步执行该方法时,尽管电子邮件字符串与存储在我的订单数据库文档 "email": "brianvarley@gmail.com"
我正在使用 MongoDB.Net driver 与 MongoLabs 存储库通信。我查询所有文档的其他查询都有效,所以似乎不是连接问题。
我尝试将鼠标悬停在 c.Email
上以检查数据库结果,但没有弹出值。
有谁知道如何进一步调试空结果?
这是邮箱查询订单的方法:
public async Task<List<OrderModel>> GetAllByEmailAsync(string email)
{
if (orderList == null)
await LoadDbAsync();
return orderList.Where(c => c.Email == email).ToList();
}
我添加了一个转储来检查 orderList 内容,但显示计数 = 0:
string dump = string.Join(",", orderList.ToString());
这是 LoadDBAsync()
,当我单步执行代码时,由于 OrderList 不为空而跳过此方法:
public async Task LoadDbAsync()
{
var orderCollection = StartConnection();
try
{
orderList = await orderCollection.Find(new BsonDocument()).ToListAsync();
}
catch (MongoException ex)
{
//Log exception here:
MessageBox.Show("A connection error occurred: " + ex.Message, "Connection Exception", MessageBoxButton.OK, MessageBoxImage.Warning);
}
}
以及从 LoadDbAsync 调用的 StartConnection()
:
public IMongoCollection<OrderModel> StartConnection()
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("orders");
//Get a handle on the customers collection:
var collection = database.GetCollection<OrderModel>("customer_orders");
return collection;
}
如果您的列表不是 null
而是空的,它永远不会 return 任何东西...更改您的代码:
public async Task<List<OrderModel>> GetAllByEmailAsync(string email)
{
if (orderList == null || orderList.Count() == 0)
await LoadDbAsync();
return orderList.Where(c => c.Email == email).ToList();
}