2011-01-06 53 views
0

我需要調用從LINQ到SQL的存儲過程。我知道,在數據庫優先的方法中,您只需將存儲的proc拖動到您的LINQ to SQL設計器中,即可爲您生成存儲的proc代碼。如何從LINQ調用存儲過程到SQL如果工作「代碼優先」

但是,我使用LINQ to SQL以代碼優先的方式創建我的域類,並添加屬性以將它們連接到LINQ to SQL。我不知道如何以這種方式調用我的存儲過程。

+0

如果您創建的類最終是LINQ to SQL實體,那麼您爲什麼不使用Visual Studio中的Entity Designer創建它們?您可以在那裏創建常規類,即使它們沒有數據庫映射(還)。手動添加/管理所有這些屬性聽起來像是一場噩夢 - 而設計師則輕而易舉。設計者將爲你創建部分類和屬性,所以你必須將你的定製(方法等)放入另一個部分類文件中(這是處理LINQ to SQL實體類的常用方式)。 – shaunmartin 2011-01-07 00:40:48

回答

0

我建議先採用數據庫優先的方法爲其自動生成cs代碼,然後在您的(手動)代碼中實現該代碼。

如果實現MySPResult這種方式,你可以使用它:

ISingleResult<MySPResult> spResult = DataContext.MySP(params) 

你需要使用LINQ to SQL的這個?你可以在DbCommand上調用SP。如果您需要返回您的POCO實體,您仍然可以手動轉換它或編寫一個通用實體轉換器。

(如果你需要在所有使用SP也可以考慮。你可以使用標準的LINQ,LINQ的表情,動態查詢,那麼你就必須實現,否則自動生成的類型化封裝代碼)

+0

感謝您的想法。我查看了數據庫第一次生成的代碼,它生成的代碼與其自己的DataContext子類非常緊密地綁定。看起來不是一件容易的事情,我決定有一個DBML文件,我只是用於存儲過程,這很好。 – 2011-01-07 14:35:35