我想用System.Linq.Dynamic
動態查詢一個對象。動態LINQ可以與實體複雜類型兼容嗎?
var selectData = (from i in data
select i).AsQueryable().Where("Name = @0","Bob1");//This works fine with a non-entity object
我know我們不能投影到映射實體上。我認爲,這是代碼失敗
foreach (var item in rawQuery.ObsDataResultList)
{
var propertyData = (from i in item
select i).AsQueryable().Where("PropertyName = @0", "blah");
}//item is a Entity Complex Type
錯誤的原因
找不到 源型「ClassLibrary1.Model.bhcs_ObsData_2_Result」的查詢模式的實現。 '選擇'不是 找到。
鑑於我需要在運行時指定PropertyName,我沒有看到用匿名類型或DTO投影的任何方法。
此時我不需要保留任何實體功能,我只需要這些數據。將數據複製到可查詢的內容是一個有效的解決方案。那麼,是否有可能使用動態LINQ查詢實體框架?
這裏是實體類的頭(我想查詢的東西,又名項目對象)
[EdmComplexTypeAttribute(NamespaceName="MyDbModel", Name="blah_myQuery_2_Result")]
[DataContractAttribute(IsReference=true)]
[Serializable()]
public partial class blah_myQuery_2_Result : ComplexObject
{
我對此感興趣,因爲我還沒有對動態linq有所瞭解。但我必須說(純粹是主觀地,作爲風格問題),我發現將查詢理解與方法調用混合在同一個表達式中會讓人困惑,特別是如果查詢理解是來自數據選擇i中的簡單'。我認爲如果你改變'(從我在數據中選擇i).AsQueryable()'到'data.AsQueryable()',你會發現代碼更易於維護。 – phoog 2012-03-21 21:16:26