誰能告訴我爲什麼我不能在這樣的實體框架選擇MS SQL數據庫中的新對象:LINQ到SQL內部的.NET Framework數據提供程序錯誤1025
public static Expression<Func<LeaveDay, bool>> IsInDatesRange(DateTime startDate, DateTime endDate){
return ld => ld.StartDate <= endDate && ld.EndDate >= startDate;
}
this.ObjectContext.People.Select(p => new NewPeopleObject
{
Guid = p.Guid,
FirstName = p.FirstName,
LastName = p.LastName,
LeaveDays = p.CalendarData.LeaveDays.AsQueryable()
.Where(LeaveDayExpressions.IsInDatesRange(startDate, endDate))
.Select(ld => new LeaveDaySummary
{
StartDate = ld.StartDate,
EndDate = ld.EndDate,
})
})
沒有AsQueryable()
我不能編譯應用程序,因爲LeaveDayExpressions.IsInDatesRange
是靜態表達式。我試圖通止Func鍵Where
條款,但它拋出內部的.NET Framework數據提供程序錯誤1025使用Expression和AsQueryable
上LeaveDays
我得到這個異常:應該是不可達
人民
代碼是
ObjectSet
收集與一個CalendarData
對象上一個People
和CalendarData
有EntityCollection
集LeaveDays
。
NewPeopleObject
是一個幾個屬性類和IEnumarable
LeaveDaySummaries
集合。如何在不解析linq to sql錯誤的情況下將表達式傳遞給
Where
子句?
至於我可以告訴你,不告訴我們如何定義LeaveDayExpressions。如果不能看到這一點,很難提供幫助。 – Hogan
我編輯了我的代碼。 – maniek099
是的,這仍然沒有意義。你想要做一個擴展方法嗎?然後語法應該像'.Where(L => L.IsInDatesRange(startDate,endDate))' – Hogan