【发布时间】:2017-09-27 12:32:53
【问题描述】:
希望标题足够清晰。 我的存储库方法如下所示:
public async Task<List<Model>> GetAllByCode(string code)
{
using (var ctx = new DatabaseContext())
{
return await ctx.Models.Where(m => m.Code.Equals(code)).ToListAsync();
}
}
根据该方法的结果,我创建了一个可观察的集合,我将其绑定到视图中的 Combobox。
Models = new ObservableCollection<Model>(await ModelRepository.GetAllByCode("code"));
但 ObservableCollection 始终为空。我什至可以在 Debugger 中看到结果(如果我没记错的话,它是 IEnumerable 或 IQueryable 集合)。我 100% 确定数据库没问题,因为当我使用时
return await ctx.Models.ToListAsync();
它返回数据库中的所有行。
谁能告诉我我做错了什么?
编辑:
问题出在实体框架中。我仍然没有找到解决方案,但我的上下文没有从表中检索新数据,而是他总是采用缓存(我想)版本,即使我对每个请求都使用一次性上下文。
但还是没有回答。
【问题讨论】:
-
Code字段中的值code真的有吗? -
确定有
m.Code == "code"的模型吗?或者您是否打算写ModelRepository.GetAllByCode(code)而不是ModelRepository.GetAllByCode("code")? -
是的,我有。我仔细检查了它,即使是拼写错误。
-
你能分享一些示例数据吗?
-
你有没有试过追踪ef生成的实际sql?
标签: c# wpf list linq generic-collections