0

C#にエンティティオブジェクトがあります。FBApiと呼ばれるデータベーステーブルを照会します。このテーブルには、整数の年と月が格納されます。渡されたパラメーターよりも大きいすべてのレコードを返す必要がある関数があります。

public query(int myYear, int myMonth){
   var context = new MCSSUtility.Entities();
   return context.FBApis.Where(p => p.month == month && p.year == year);
}

整数をDateTimeオブジェクトに変換することを考えていましたが、where句をDatetime変数に動的に変換する方法がわかりません。

public query(int myYear, int myMonth){
   DateTime my = new DateTime(myYear,myMonth,1);
   var context = new MCSSUtility.Entities();
   return context.FBApis.Where(p => new DateTime(p.year,p.month,1) >= my);
}
4

2 に答える 2

3

これをお試し下さい:

            public query(int myYear, int myMonth){
               DateTime my = new DateTime(myYear,myMonth,1);
               var context = new MCSSUtility.Entities();
               return context.FBApis.Where(p => EntityFunctions.CreateDateTime(p.year, p.month, 1, 0, 0, 0)  >= my);
            }
于 2012-09-04T17:30:18.613 に答える
0

最初に、FBApiオブジェクトと構築された日時の2つのプロパティを持つ匿名オブジェクトを選択してみてください。

return context.FBApis
.Select(s=>new{MyFBAPIObject=s,MyDateTime=newDateTime(s.Year,s.Month,1)})
.Where(w=>w.MyDateTime>=my)
.Select(s2=>s2.MyFBAPIObject);
于 2012-09-04T17:32:15.297 に答える