PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_Sharp
[問題] PredicateBuilder string互相比較問題
作者:
windofsmile
(微笑之風)
2018-10-08 23:13:19
各位版上的大大們好 小弟遇到卡了許久的瓶頸
在專案中的Service層中有用到PredicateBuilder
用以承接SQL的資料
像是var keyword = PredicateBuilder.New<Model>();
keyword = keyword.And(m =>m.sex =="male");
keyword = keyword.And(m =>m.birthday >= "輸入者選擇的日期");
最後再
return UserRepository.Queryable().AsExpandable().Where(keyWord);
類似這樣的寫法。
在關鍵字的搜索方面都很順,沒什麼型別上的問題,
但birthday這邊遇到了很大的瓶頸。
小弟想讓使用者選擇特定時間區段後,Service撈出該區間的使用者資訊
由於SQL中的欄位定義是nvarchar,也不能夠隨意更動SQL的欄位,
以日期A、B為判斷,拿來與資料庫中的birthday做比較(nvarchar)
在keyword = keyword.And(m => m.birthday >= "使用者選擇的日期A");
keyword = keyword.And(m => m.birthday <= "使用者選擇的日期B");
的時候,就會一直被卡住,錯誤訊息是string不能夠與string做比較
使用者選擇的日期A、B我有辦法將它轉為int 唯獨m.birthday不知如何下手。
小弟因為對linq不熟
一開始試過Convert.Int16(m.birthday) ; int.parse(m.birthday)等常用轉型方式
到後來google才發現在linQ中是沒辦法使用這樣的轉型方式的
也查到許多資料,但大部分都是純linq的語法,PredicateBuilder的方法資訊不多
因此突然間不知道該怎麼突破這個障礙...
如果版上的大大們有可以提供的google方向,或是一些想法
希望大大們可以不吝指教<_O_>
作者:
qa17b
(聖猿降臨 眾酸退散)
2018-10-08 23:17:00
轉datetime比較啊?
作者: t64141 (榕樹)
2018-10-09 00:38:00
假設DB轉date的api是to_date(), 試試 oracle to_date by linq之類的關鍵字順便吐槽一下前人,時間欄位用nvarchar是在想什麼...再不行就只能用SP處理後再給程式呼叫了
作者:
chentsungmin
(MinMin)
2018-10-09 01:00:00
使用 String.Compare 比較試試
作者: ATPS4869 (ATPS4869)
2018-10-09 18:18:00
試試 DbFuntions.CreateDateTime
繼續閱讀
[問題] C# DLL的執行效率
commandoEX
[問題] .net core Filter DI問題
kk0521kk
[問題] 為何richtextbox讀取rtf檔案會出現亂碼?
crybrent
[問題] 中斷點的紅圈消失了
ac131151
[問題] 防呆寫法
abc95007
[問題] MVC框架鑽研方向疑問(求學習方向)
windofsmile
[問題] Windows Service設為自動卻沒自動執行?
james999
[問題] 請問大大 訊息提示視窗該如何製作
Stevenashh
[問題] 請問呼叫COM元件時會卡UI要怎麼解決?
sam319
[問題] 自訂控制項 加入form後找不到dll
qngu86
Links
booklink
Contact Us: admin [ a t ] ucptt.com