大家好,我在多个地方执行这个查询。为了避免重复输入查询语句,我想要调用一个返回查询结果的方法。但我不确定该方法的返回类型应该是什么,也不确定是否可能实现。我使用查询语句来写入信息的csv文件,并使用查询语句将项目添加到我的可观察集合中,该集合绑定到列表视图。
using (ProjectTrackingDBEntities context = new ProjectTrackingDBEntities())
{
var result = context.TimeEntries.Where(Entry => Entry.Date >= FilterProjectAfterDate
&& Entry.Date <= FilterProjectBeforerDate
&& (FilterProjectName != null ? Entry.ProjectName.Contains(FilterProjectName) : true))
.GroupBy(m => new { m.ProjectName, m.Phase })
.Join(context.Projects, m => new { m.Key.ProjectName, m.Key.Phase }, w => new { w.ProjectName, w.Phase }, (m, w) => new { te = m, proj = w })
.Select(m => new
{
Name = m.te.Key.ProjectName,
Phase = m.te.Key.Phase,
TimeWorked = m.te.Sum(w => w.TimeWorked),
ProposedCompletionDate = m.proj.ProposedCompletionDate,
ActualCompletionDate = m.proj.ActualCompletionDate,
Active = m.proj.Active,
StartDate = m.proj.StartDate,
Description = m.proj.Description,
EstimatedHours = m.proj.EstimatedHours
});
}
我现在可以通过重新输入查询并对数据执行后续的foreach()
循环来完成两者。我更希望能够像这样做:
var ReturnedQuery = GetProjectsQuery();
foreach(var item in ReturnedQuery)
{
//do stuff
}
非常感谢您的帮助。
IEnumerable<YourType>
来代替你的查询。 - JSteward