私はエンティティ フレームワーク 4 を使用しており、次のコードがあります。
public decimal GetSchoolSuccessRate(EvaluationComparationFilter filter)
{
return this.GetSuccessRate(x => x.TestCampaignId == filter.TestCampaignId &&
x.SubjectId == filter.SubjectId &&
x.SectionNo == 0, filter.CountSvp);
}
private decimal GetSuccessRate(Func<FinalResult_Base, bool> wherePredicate, bool countSvp)
{
using (var db = new DataEntities())
{
IQueryable<FinalResult_Base> query = db
.FinalResult_Bases.Where(wherePredicate).AsQueryable();
if (!countSvp)
query = query.Where(x => x.SpecialNeeds == 0);
query.Any(); //--HERE is created the SELECT with NO WHERE clause
....
}
}
SELECT
行の結果の statmenet に句がない理由がわかりquery.Any()
ませんWHERE
。どちらからのフィルターwherePredicate
もx.SpecialNeeds == 0
適用されません。
何か案が?
更新 1: 問題wherePredicate
は、式ではなく Func 型の にあるようです。エクスプレッションを使ってみます。