0
以我簡化示例我有以下屬性的對象:EF6 IQueryable的動態LINQ凡(謂詞,值)與DbFunctions.TruncateTime
- 名稱(字符串)
- BirthDateTimeStamp(日期時間)
我需要BA能夠通過以下方式來構建動態查詢
var predicate = "Name = @0";
var values = new object[]{"Ed"};
myIQueryableDataSource.Where(predicate, values)
釷工作很好。現在我想比較我的日期時間
var predicate = "BirthDateTimeStamp >= @0";
var values = new object[]{someDateTime};
這也很好。但是當比較日期時間和這個問題時,我實際上想要做的事情,當等於僅僅比較日期時顯示自己更好。
var predicate = "BirthDateTimeStamp.Date >= @0";
因爲日期財產不被認可的EF到SQL Server
var predicate = "System.Data.Entity.DbFunctions.TruncateTime(BirthDateTimeStamp) >= @0";
這也沒有工作,因爲我只能在謂詞訪問我的對象屬性這是不可能的。
我該如何解決這個問題,所以謂詞保持字符串格式。這段代碼只是我現有的一個大型語法分析器的一部分,並且可以完全重寫。