【发布时间】:2020-08-19 11:24:46
【问题描述】:
下面的代码在 LINQPad 中完美运行,但是当我在 Visual Studio 中实现它时,它不会提取任何数据。当我评论 let 子句和周期(1 到 5)时,我得到了所有其他数据(Pin ...Notes)。有人可以告诉我如何在 C# 中实现 let 子句吗?
public List<RouteStatus> Route_AB_List(int yardId, int siteTypeId)
{
using (var context = new COESystemContext())
{
var RouteList = from site in context.Sites
where site.YardID == yardId && site.SiteTypeID == siteTypeId && site.Season.SeasonYear == DateTime.Now.Year
orderby site.Community.Name ascending
let Cycles = site.JobCards
.Where(job => job.OperationID == 1)
.OrderByDescending(job => job.ClosedDate.HasValue)
.ThenBy(job => job.ClosedDate)
.Select(job => new { Date = job.ClosedDate })
select new RouteStatus
{
Pin = site.Pin,
Community = site.Community.Name,
Neighbourhood = site.Neighbourhood,
Address = site.StreetAddress,
Area = site.Area,
Notes = site.Notes,
Cycle1 = Cycles.FirstOrDefault().Date,
Cycle2 = Cycles.FirstOrDefault().Equals(null) ? (DateTime?)null : Cycles.Skip(1).FirstOrDefault().Date,
Cycle3 = Cycles.Skip(2).FirstOrDefault().Equals(null) ? (DateTime?)null : Cycles.Skip(2).FirstOrDefault().Date,
Cycle4 = Cycles.Skip(3).FirstOrDefault().Equals(null) ? (DateTime?)null : Cycles.Skip(3).FirstOrDefault().Date,
Cycle5 = Cycles.Skip(4).FirstOrDefault().Equals(null) ? (DateTime?)null : Cycles.Skip(4).FirstOrDefault().Date
};
return RouteList.ToList();
}
}
【问题讨论】:
-
所以问题不在于如何使用
let子句。目前尚不清楚“在 Linq 中”和“在 VisualStudio 中”是什么意思。重要的是在这两种情况下您连接到哪个数据库以及哪个 ORM 执行该语句。 -
对不起,我的意思是在 LinqPad 中,代码运行完美,但是当我在 VisualStudio 中实现它时,它没有返回任何数据
-
@J.RaoulFEZE - 然后编辑您的问题。