0

我知道EF4不支持用戶定義類型(還)。我需要編寫一個查詢,該查詢接受<product_code, quantity>對的列表,並根據quantity爲每個product_code返回一個帶有product_codeprice的記錄集。 EF4模型化的最佳選擇是什麼?在數據庫中計算得到價格是相當複雜的,並且有很多產品,這意味着大部分操作應該發生在服務器端。 (例如,我無法首先從服務器獲取完整的價格列表,然後過濾到我需要的客戶端產品,也無法將數量應用到客戶端的計算上,必須將其傳遞到服務器並進行處理那裏)。任何想法都歡迎。UDT作爲EF4查詢中的參數

回答

2

我想你主要回答你的問題。計算必須在數據庫服務器上完成,而您只想獲得結果,不是嗎?如果您使用的是SQL Server 2008,則可以創建接受table valued parameter的存儲過程。現在您可以撥打此程序directly using ADO.NET或使用EF和context.ExecuteStoreQuery,您仍然通過DataTableSqlParameterSqlDbType.Structured

如果您不使用SQL Server 2008,則需要存儲過程,其中一個大的nvarchar參數將整個列表傳遞爲逗號分隔的字符串。您的存儲過程將首先將parse this list臨時表中,然後以與表值參數相同的方式處理計算。

+0

希望創造奇蹟 – 2011-05-22 21:26:16

+0

我無法讓你的建議工作,並打開了另一個問題,看看是否有答案。請參閱:http://stackoverflow.com/questions/8157345/entity-framework-stored-procedure-table-value-parameter – 2011-11-16 19:17:31