1

私のテーブルには、などのTimeTable列がTitle,FromDate,ToDateあり、月単位で結果を取得しようとしています。このために、Entity Frameworkのようなものを使用して試しました。

DataObject.Entities entities=new DataObject.Entities();

DataObject.TimeTable timeTable     
            = entities.TimeTables.First(t=>t.FromDate.Month<=DateTime.Now.Month 
                                && t.ToDate.Month>DateTime.Now.Month)
{ 
     //
}

しかし、ここではt.FromDate.Month、表示エラーのようなエラーが表示されています<System.DateTime> doesn't contain definition for Month......これを修正するにはどうすればよいですか、誰でも私を助けてくれますか、

4

1 に答える 1

2

問題は、.Net フレームワークの一部であり、linq が変換できないメソッドを使用していることです。この問題を処理するには、このように試しました

var example = entities.TimeTables.AsEnumerable().Where(
                            t=>t.FromDate.Month<=DateTime.Now.Month 
                            && t.ToDate.Month>DateTime.Now.Month);

これも機能する可能性があります

var example = entities.TimeTables.ToList().Where(
                            t=>t.FromDate.Month<=DateTime.Now.Month 
                            && t.ToDate.Month>DateTime.Now.Month);

注: 2番目のものは、テーブルのすべてのレコードを取得することを強制し、行が多すぎるとパフォーマンスが低下します

于 2012-06-29T18:29:42.693 に答える