Linq和Lamda表示式中新增時間判斷

2021-08-21 14:55:08 字數 814 閱讀 7942

在工作中遇到個問題,在使用lamda查詢資料的時候,需要新增乙個時間判斷, datetime.adddays(3) > e.expirationdate

例如:list = context.voucherusersignplview.where(e => e.isuse == isuse && e.expirationdate >= datetime.now && datetime.adddays(days) > e.expirationdate).tolist();

當然,這段**能夠完全通過編譯,但問題來了,當執行到該句時,卻報錯了

--->其他資訊: linq to entities 不識別方法「system.datetime adddays(double)」,因此該方法無法轉換為儲存表示式。
問題很明顯,不識別adddays方法,只能換個東東,於是 entityfunctions 類 登場了, 實體方法s,一目了然。

msdn 上面的解釋 :提供在 linq to entities 查詢中,公開概念模型規範函式的公共語言執行時 (clr) 方法。

於是選用了自己需要的方法 entityfunctions.diffdays。

使用後:list = context.voucherusersignplview.where(e => e.isuse == isuse && e.expirationdate >= datetime.now && system.data.objects.entityfunctions.diffdays(datetime.now, e.expirationdate) <= days).tolist();

執行無異常。

LAMDA表示式學習

1.普通繫結 public void button1 click object sender,eventargs e this.button1.click button1 click 2.匿名委託 this.button1.click delegate object sender,eventargs...

lamda表示式學習

lamda表示式 格式 形參列表 作用 簡化匿名方法的書寫,可用在任何可使用匿名方法和強型別 的地方 例子 using system using system.collections.generic using system.linq using system.text namespace lamd...

LINQ和Lambda表示式

前段時間接觸了一種新的表示式,但是不知道這個是什麼意思,所以就先站在巨人的肩膀用了,現在聽師哥說這種寫法是 lambda 表示式。我一直以為,這個 lambda 表示式和 linq 查詢有異曲同工之妙,可惜,這樣想就大錯特錯了。定義語言整合查詢 language integrated query 允...