0

此SPROC「返回」包含兩列的表格:Id,Score。有什麼辦法可以執行這個SPROC並用Entity Framework得到結果嗎?

是否可以執行此SPROC並將自定義數據類型作爲參數從Entity Framework中包含?

ALTER PROCEDURE [presenta].[SearchLpi] 
    // The presenta.IdTableType is a table with just one column "Id" 
    @selectedLpis presenta.IdTableType READONLY 
AS 
BEGIN 
    SET NOCOUNT ON; 

    WITH Scores AS(
     SELECT 
      ItemId, SUM(Score) AS Score 

     FROM [Presenta].[presenta].[LpivScores] 

     WHERE 
      ListPropertyItemId IN (
       SELECT Id 
       FROM @selectedLpis 
      ) 

     GROUP BY 
      ItemId 
    ) 
    SELECT 
     i.Id, 
     s.Score 
    FROM 
     Scores s, 
     Items i 
    WHERE 
     s.ItemId = i.Id 

END 

如果沒有,是否有任何其他方式來獲得存儲過程的結果,並能加入這個結果與其他LINQ查詢?

回答

0

使用與存儲過程的結果相對應的屬性在模型的Store部分中創建DefiningQuery。
你可以使用你喜歡的XML編輯器。 Devart Entity Developer對DefiningQueries具有設計時支持。
然後爲該過程創建一個函數導入並將返回類型設置爲手工實體。
爲Oracle,MySQL和PostgreSQL,SQLite的Devart團隊
http://www.devart.com/dotconnect
ADO.NET數據提供商與 實體框架和LINQ to SQL支持

1

這是區域之一,其中EF 4將帶來顯着改善。使用EF4,您可以使用存儲過程,並且如果該存儲過程的返回值沒有映射到給定的表,您可以輕鬆創建一個所謂的複合類型(基本上是一個類),它將保存存儲的proc返回值。

看到一些博客文章的樣品和詳細信息上:

另一個偉大的新功能值得期待!

+0

EF4絕對值得期待。但是,現在我認爲它在公司環境中效果不好。不得不等待2010年3月的最終版本。 – Mickel 2009-12-30 18:20:08

相關問題