Ошибка: не поддерживается исключение в запросе linq при вызове метода для установки свойств в инструкции linq
Привет,
Я получаю не поддерживаемое исключение при вызове методов для установки значений анонимного типа. Я могу понять, почему это происходит, но есть ли какой-то другой способ достичь того, что я пытаюсь сделать. пожалуйста, посмотрите на код ниже.
Что я уже пробовал:
private static double CalculateAvgDayFromDates(DateTime date, DateTime productionStartDate) { return (Convert.ToDateTime(date.ToShortDateString()) - Convert.ToDateTime(productionStartDate.ToShortDateString())).TotalDays + GetPercentageOfDay(date.TimeOfDay); } public static void GetDirectorDetails() { try { var sdt = new DateTime(2018, 2, 3); var edt = new DateTime(2019, 2, 1); using (var db = new MyDbContext()) { var ManagerDetails = from p in db.Projects let projHOurs = db.ProjectHours.Where(ph => ph.ProjectID == p.ID).Sum(h => h.DayHours) //let lDate = CalculateAvgDayFromDates(p.ReadyToLaunchDate.Value, p.ProductionStartDate.Value) //let sLDate = CalculateAvgDayFromDates(p.ProductionStartDate.Value.AddDays(6), p.ProductionStartDate.Value) where (p.ProductionStartDate > sdt && p.ProductionStartDate <= edt) where (p.ProductionCompleteDate != null && p.ProductType == 1 && p.Active) select new { Manager = p.Manager, SalesEmployee = p.SalesEmployee, StoreNumber = p.StoreNumber, LaunchDate = CalculateAvgDayFromDates(p.ReadyToLaunchDate.Value, p.ProductionStartDate.Value), SoftLaunchDate = CalculateAvgDayFromDates(p.ProductionStartDate.Value.AddDays(6), p.ProductionStartDate.Value), totalWorkedHours = projHOurs }; var Query = from d in directorDetails group d by d.director into g select new { manager = g.Key, storeCounts = g.Count(), avgWorkedHours = g.Average(x => x.totalWorkedHours), avgLaunchDays = g.Average(x => x.LaunchDate), avgSoftLaunchDays = g.Average(x => x.SoftLaunchDate) }; foreach (var d in Query) { System.Diagnostics.Debug.WriteLine($"dir:{d.manager}, storeCounts: {d.storeCounts}, avgLaunchDays: {d.avgLaunchDays}, avgSoftLaunchDays:{d.avgSoftLaunchDays}, avgWorkedHours: {d.avgWorkedHours}"); } } } catch (Exception ex) { string s = ex.Message; System.Diagnostics.Debug.WriteLine(s); } }