1
我寫了一個擴展方法:擴展方法對於IQueryable的工作不
public static IQueryable<TSource> ConditionalDefaultEmpty<TSource>(this IQueryable<TSource> source, bool condition)
{
return condition ? source.DefaultIfEmpty() : source ;
}
然後我調用的方法,像這樣:
var q = from sr in myDb.tblStudentsRegInfos
from de in myDb.tblDisciplinesEvents.Where(e => sr.Serial == e.tblStudentsRegInfoRef
&& e.tblStudentsRegInfoRef == studentRegId
&& (!forStudent || e.PublishOnInternet)
&& (!formDate.HasValue || e.RegDate >= formDate)
&& (!toDate.HasValue || e.RegDate <= toDate))
.ConditionalDefaultEmpty(noPrintAll)
join dt in myDb.tblDisciplinesTitles on de.tblDisciplinesTitlesRef equals dt.Serial
where sr.Serial == studentRegId
group sr by new
{
...
}
into std
select new
{....
};
但我得到這個錯誤:
會員訪問[專欄名稱]不合法....
我該如何解決這個問題?
更新:我明白,EF無法編譯到的IQueryable ...
請問,當你不使用你的方法查詢工作? – Euphoric 2014-12-06 13:03:22
是的,它的工作非常好。 – 2014-12-06 13:03:50
你可以執行第二個(你的方法的部分)作爲單獨的查詢嗎? – Euphoric 2014-12-06 13:04:32