2
我有很多的問題,讓它發送到服務器檢索過濾的結果之前,正確構建查詢,我是查詢孔命令結果集然後appliying一個訂單商品過濾器與計算屬性,當試圖重構只獲取匹配項目條件的訂單的集合,當然我得到的錯誤:指定的類型成員'ReceivableQuantity'不支持LINQ to Entities。僅支持初始化程序,實體成員和實體導航屬性。 下面的工作代碼:改善Linq到實體查詢與未映射的屬性
pendingOrders = from o in this.GetAll()
where o.OrderItems.Where(i => i.ReceivableQuantity > 0).Count() > 0
select new Order()
{
OrderNumber = o.OrderNumber,
Comments = o.Comments,
FinalApprover = o.FinalApprover,
OrderDate = o.OrderDate,
Requisitioner = o.Requisitioner,
SupplierName = o.SupplierName,
ID = o.ID,
ShoppingCartName = o.ShoppingCartName,
OrderItems = (from i in o.OrderItems
where i.ReceivableQuantity > 0
select i).OrderBy(i => i.LineNumber).ToList()
};
這是NotMapped物業在OrderItem的類別:
[NotMapped]
public decimal ReceivableQuantity
{
get
{
if (Order == null)
return 0;
decimal response;
response = this.MatchedQuantity - this.ReceivedQuantity;
if (response >= 0)
return response;
else
throw new ArgumentOutOfRangeException("Receivable Quantity must be greater than 0.");
}
}
MatchedQuantity和ReceivedQuantity也NotMapped屬性,所以我認爲這是真正的延伸。
什麼是我最好使用的方法,現在使用它的網站已經在運行,隨着數據庫日益增長,使用代碼的功能變得非常緩慢。
在此先感謝您的幫助。 Lio。
感謝您的回覆Ladislav,我使用的是SQLCE,所以存儲過程不是解決方案,另一方面,我遠遠不擅長編寫T-SQL :),這就是爲什麼我選擇EF作爲數據訪問技術因爲比T-SQL更容易維護linq,在開始嘗試寫入SQL查詢之前,將繼續嘗試尋找解決方案 – Lio