2011-12-12 25 views
1

這可能是一個關於泛型和/或反射的問題......但我想有人比我能說的更有經驗。LINQ to SQL生成的函數,如何編寫插入,更新和刪除的通用函數

所以,我有一個由SQLMetal.exe生成的DataContext類。

除了從數據庫中生成所有的實體外,它還爲我提供了插入,更新和刪除每個實體的部分功能。

我注意到的是,這些功能都看起來大致相同。例如,插入檢查主鍵(int)是否爲零。如果是,則在DataContext的給定表上調用「InsertOnSubmit」,然後調用SubmitChanges。

所以變量是主鍵字段和類型。除此之外,他們是一樣的。這可以做得更通用,這樣我可以只寫一個插入,更新和刪除功能?

謝謝。

編輯:當我談論功能時,我也指的是方法。他們不是這個意思嗎?另外,我想要三個獨立的通用函數。插入,更新和刪除。

+0

請顯示您想要推廣的其中一個功能的代碼。 – Jan

+0

,你爲什麼要這樣做?無論如何它們都是爲你生成的?不要忘記他們是部分班級,所以你可以擴展他們,如果你去通用 – Pleun

+0

啊,這會很有趣Pleun - 我沒有想到那樣。當我有六個實體時,它看起來很痛苦,它們的所有插入,更新和刪除功能看起來都很相似。你會建議只是讓它保持原樣? – user738383

回答

0

我不確定我完全理解了這一點。按功能你是指方法?也許你可以創建一個Persist(..)方法來確定它是基於鍵值的插入還是更新,但很難看出沒有Delete(..)方法的值或實際值。

相關問題