2009-07-24 85 views
3

是否可以強制LINQ to SQL設計器行爲編輯器識別尚未由設計器自己生成的表實體的屬性?這是 - 我想傳遞一個自定義屬性(在我自己的部分類中定義)作爲參數存儲過程。我試過在XML中手動指定參數名稱(對於某些其他事情,例如當L2S設計者無法理解返回類型與現有表格匹配時強制SP返回類型),我試過手動指定參數名稱。不幸的是,這是行不通的。LINQ to SQL插入行爲中的非生成屬性

我目前正在移植一組以.NET 1.1編寫的Web服務,以便利用隨後出現的一切。我試圖整合LINQ對象中兩層業務對象(主要是從DB更改字段名稱到對象和類型轉換)所處理的所有行爲。

在這種情況下,最簡單的解決方案是改變數據庫中SP的參數類型,這就是我在這種情況下要做的。然而,在數據庫中已經有三組獨立的SP運行。舊的Web服務。 .NET 2.0 Web服務和網站。我試圖避免WCF Web服務SP的泛濫,因爲我認爲考慮到大部分數據訪問已完成,這將是一個非常普遍的現象。

+0

爲了簡化這一點,讓其他人可以查看它:如果您右鍵單擊設計器(.dbml)中的表並選擇配置行爲,您將能夠指定使用存儲過程而不是生成的命令(插入,刪除,更新)。如果您選擇使用存儲過程,它將允許您將SP參數與類中的屬性進行匹配。問題是來自分部類的屬性完全沒有。 – 2009-07-27 19:19:25

回答

4

在設計器中有許多問題支持部分類聲明的屬性。其中一些正在解決2010年,但我不確定是否涵蓋這個具體問題。您可能想要在connect.microsoft.com上輸入一個錯誤項目以使團隊查看它。與此同時,我懷疑你將不得不手動管理這些函數,而不是通過designer/dbml在分部類中進行管理。 LINQ to SQL的大部分存儲過程支持都是基於約定的,所以只要方法命名正確,即使沒有在dbml中明確配置它,也應該使用它。

0

這樣看來「不」,你將需要:

  • 不使用SP的插入行爲
  • 嘗試吉姆的建議
  • 堅持的屬性,所以它是可
  • 手動編輯生成的代碼(yuck)*這不是一個建議,只是一個選項!