我的实体框架查询始终返回“1”

时间:2015-05-07 18:42:06

标签: c# linq entity-framework caching

这是我的完整代码

var SearchValue = dbContext.TimeSheetDetails
                      .Where(t => t.StartDate == date && 
                                  t.CreatedBy == userId && 
                                  t.ManageTask.ProjectId == projectId)
                      .ToList()
                      .Select(x =>
                              new TimeSheetModel()
                              {
                                  TaskId = Convert.ToInt32(x.TaskId),
                                  EndDate = x.EndDate,
                                  EndTime = x.EndTime,
                                  Remarks = x.Remarks,
                                  StartDate = x.StartDate,
                                  StartTime = x.StartTime,
                                  Status = Convert.ToInt32(x.StatusType.StatusTypeId),
                                  StatusName = Convert.ToString(x.StatusType.StatusTypeName),
                                  TimeSheetId = x.TimeSheetId,
                                  TotalHours = x.TotalHours,
                                  CreatedBy = Convert.ToInt32(x.CreatedBy),
                                  Description = x.Description,
                                  TaskName = dbContext.TaskDetails.ToList().Where(t => t.TaskId == Convert.ToInt32(x.TaskId)).FirstOrDefault().TaskName
                              }).ToList();

所有内容都获得正确的数据,但TaskName始终设置为“1”。没有得到正确的名称。

见这一行

TaskName = dbContext.TaskDetails
                    .ToList()
                    .Where(t => t.TaskId == Convert.ToInt32(x.TaskId))
                    .FirstOrDefault().TaskName

以上查询总是返回“1”,我不知道是什么问题。

您可以快速观看结果。见下图

enter image description here

更新

此外,我尝试过此查询,而不是我的上述查询

TaskName = x.ManageTask.TaskDetails.FirstOrDefault(t => t.TaskId == Convert.ToInt32(x.TaskId)).TaskName

但没有运气,它不起作用,与返回“1”相同

0 个答案:

没有答案