私は現在、私に与えなければならない式メソッド(linq to entityクエリで使用される)を開発しています
- 特定の期間の日数(開始日と終了日)
- 特別な日が期間内にある場合は、この日数を減らします。
私の考えは次のとおりでした:
- すべての日付(およびEnumerable.Range)を使用して列挙可能ファイルを生成します
- MyEnumerable.Where(a => a!= "20120101")のように、この列挙可能な場所で特別な日付を削除します。
- その後、MyEnumerable.Count()を返します
私はこのコードが付属しています:
return (p) => Enumerable
.Range(1, 4)
.Where(a => a != 20120101)
.AsQueryable()
.Count()
私は(例のように)リストとして、クエリ可能なものとしてキャストしようとしましたが、方法はありません!動作しません!私はいつもこのエラーが発生します:
LINQ to Entitiesは、メソッド'System.Collections.Generic.IEnumerable`1 [System.Int32] Range(Int32、Int32)'メソッドを認識せず、このメソッドをストア式に変換できません。
あなたはそれについて考えを持っていますか?もちろん、列挙可能なものを使用することは必須ではありません。実用的なソリューションはどれも良いです^^
よろしくお願いします!
私の質問を単純化するために、これは機能しません、そして私はしたいです。
(
from foo in User
select new
{
a = Enumerable.Range(1,4).Count()
}
).Take(1)
詳細情報:-)
私がこれを行う場合(変数内の列挙可能なものを外部化する):
var foo = Enumerable.Range(1, 4);
return (p) => foo.Where(a => a != 20110101).Count();
今回は機能しますが、このメソッドで範囲の開始と終了を定義することはできません!