Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回错误结果的实体框架查询_C#_Linq_Entity Framework - Fatal编程技术网

C# 返回错误结果的实体框架查询

C# 返回错误结果的实体框架查询,c#,linq,entity-framework,C#,Linq,Entity Framework,我通常不会问关于我自己的错误或问题,但现在我被卡住了 我的问题是EF LinQ查询的结果。它应该会起作用,但不会。返回的数字是waaay out(如3.000.000%) 所以,把问题放在上下文中:假设你有一个组织,设计成方向。每个人都在一个方向上,被称为“资源” 每个人都从事“项目” 安抚适用于按时间间隔保存的项目(例如:从第0天到第11天,为1小时/天) 现在,我们需要所有资源(人员),按方向分组,并包含一段时间内的总时间 我的要求是: var result = from r in com.

我通常不会问关于我自己的错误或问题,但现在我被卡住了

我的问题是EF LinQ查询的结果。它应该会起作用,但不会。返回的数字是waaay out(如3.000.000%)

所以,把问题放在上下文中:假设你有一个组织,设计成方向。每个人都在一个方向上,被称为“资源”

每个人都从事“项目”

安抚适用于按时间间隔保存的项目(例如:从第0天到第11天,为1小时/天)

现在,我们需要所有资源(人员),按方向分组,并包含一段时间内的总时间

我的要求是:

var result = from r in com.Ressources
             where
             ids.Contains(r.Id)
             && (from p in r.Projects
                 where p.StartDate <= dates.To && p.EndDate >= dates.From
                 select p).Count() > 0
             group r by r.Direction into groups
             orderby groups.Key.DirectionName
             select new
             {
                 Id = groups.Key.Id,
                 DirectionName = groups.Key.DirectionName,
                 Responsable = groups.Key.Responsable.Prenom + " " + groups.Key.Responsable.Nom,
                 Ressources = from pr in groups
                              let totalpl = (double?)
                                            (from planif in pr.Planification
                                              let startOffset = JayaModelContainer.GetWorksDaysCount(planif.Project.StartDate, dates.From)
                                              let endOffset = JayaModelContainer.GetWorksDaysCount(planif.Project.StartDate, dates.To)
                                              where
                                              planif.FromProjectDay <= endOffset && planif.ToProjectDay >= startOffset
                                              let start = planif.FromProjectDay > startOffset ? startOffset : planif.FromProjectDay
                                              let end = planif.ToProjectDay <= endOffset ? endOffset : planif.ToProjectDay
                                              select (end - start + 1) * planif.Amount).Sum()
                              let totalrl = (double?)
                                            (from reel in com.RealTimes
                                              let startOffset = JayaModelContainer.GetWorksDaysCount(reel.Project.StartDate, dates.From)
                                              let endOffset = JayaModelContainer.GetWorksDaysCount(reel.Project.StartDate, dates.To)
                                              where reel.TimeSheet.Ressource.Id == pr.Id &&
                                                reel.FromProjectDay <= endOffset && reel.ToProjectDay >= startOffset
                                              let start = reel.FromProjectDay > startOffset ? startOffset : reel.FromProjectDay
                                              let end = reel.ToProjectDay <= endOffset ? endOffset : reel.ToProjectDay
                                              select (end - start + 1) * reel.Amount).Sum()           
                              orderby pr.Prenom, pr.Nom
                              select new
                              {
                                  Id = pr.Id,
                                  FirstName = pr.Prenom,
                                  LastName = pr.Nom,
                                  Occupation = pr.Occupation.Name,
                                  TotalPlanifs = totalpl,
                                  TotalReels = totalrl,
                                  PlannifCapacity = totalpl / maxCapacity,
                                  ReelCapacity = totalrl / maxCapacity
                              }
             };
var result=来自com.resources中的r
哪里
ids.Contains(r.Id)
&&(来自r项目中的p)
其中p.StartDate=日期。从
选择p).Count()>0
将r按r方向分组
orderby groups.Key.DirectionName
选择新的
{
Id=groups.Key.Id,
DirectionName=groups.Key.DirectionName,
Responsable=groups.Key.Responsable.Prenom+“”+groups.Key.Responsable.Nom,
Resources=来自分组中的pr
让totalpl=(双精度?)
(来自平面化中的平面图)
让startOffset=JayaModelContainer.getworksdaysunt(planif.Project.StartDate,dates.From)
让endOffset=JayaModelContainer.getworksdaysunt(planif.Project.StartDate,dates.To)
哪里
planif.FromProjectDay=STARTOFSET
让start=planif.FromProjectDay>startOffset?startOffset:planif.FromProjectDay
let end=planif.ToProjectDay startOffset?startOffset:revel.FromProjectDay
let end=revel.ToProjectDay startOffset?startOffset:planif.FromProjectDay
let end=planif.ToProjectDay startOffset?startOffset:revel.FromProjectDay
let end=Revel.TopProjectDay startOffset?planif.FromProjectDay:startOffset
let end=planif.ToProjectDay startOffset?revel.FromProjectDay:startOffset

让end=reel.TopProjectDay p.StartDate=dates。From是对的吗?From和to实际上似乎处于错误的比较中。我认为在此期间所有项目都处于活动状态。为了实现这一点,项目必须在结束日期之前开始,在开始日期之后完成。
let start = planif.FromProjectDay > startOffset ? startOffset : planif.FromProjectDay
let end = planif.ToProjectDay <= endOffset ? endOffset : planif.ToProjectDay
let start = reel.FromProjectDay > startOffset ? startOffset : reel.FromProjectDay
let end = reel.ToProjectDay <= endOffset ? endOffset : reel.ToProjectDay
let start = planif.FromProjectDay > startOffset ? planif.FromProjectDay : startOffset
let end = planif.ToProjectDay <= endOffset ? planif.ToProjectDay : endOffset
let start = reel.FromProjectDay > startOffset ? reel.FromProjectDay : startOffset
let end = reel.ToProjectDay <= endOffset ? reel.ToProjectDay : endOffset