我有以下IQueryable
:構建一個IQueryable動態
IQueryable<Class1> queryable =
(from c1 in DbContext.Set<Class1>()
from c2 in DbContext.Set<Class2>()
from c3 in DbContext.Set<Class3>()
where c1.Id == c2.Class1Id
&& c2.Id == c3.Class2Id
&& c3.ValueAsString == val
select c1);
在上述情況下,val爲一個字符串。然而,Class3
有幾個其他成員:
public string ValueAsString { get;private set; }
public int? ValueAsInteger { get; set; }
public DateTime? ValueAsDate { get; set; }
public decimal? ValueAsDecimal { get; set; }
public bool? ValueAsBoolean { get; set; }
我需要修改IQueryable
取決於「VAL」,這可以是上述5種類型中的一個類型。是否有可能構建IQueryable
爲:
IQueryable<Class1> queryable =
(from c1 in DbContext.Set<Class1>()
from c2 in DbContext.Set<Class2>()
from c3 in DbContext.Set<Class3>()
where c1.Id == c2.Class1Id
&& c2.Id == c3.Class2Id
select c1);
然後根據「VAL」的類型添加的決賽,之前執行?例如,如果val是一個小數,追加
c3.ValueAsDecimal == val
是的,這是可能的,但它應該在選擇之前。你嘗試過什麼嗎? –
我沒跟着。 – user2524113
希望提供一個問題來提供一些代碼,以顯示他試過的東西 –