2010-11-02 51 views
0

我正在寫一個解決方案,其中數據實體通過WCF服務使用數據集傳遞給客戶端,nHibernate作爲ORM。作爲nHibernate實體的參數返回對象

我的前任編寫了一些翻譯器類,將數據集轉換爲實體,反之亦然。在大多數情況下,他將返回對象聲明爲對象的參數。

例如:

Public Shared Function CreateEntity(ByVal ds As DataSetObject, ByVal entity As EntityObject) As EntityObject 

    Dim row As ds.EntityObjectRow = ds.EntityObject(0) 

    entity.Id = row.Id 
    // Etc. 

    Return entity 

End Function 

雖然我想這樣做,如:

Public Shared Function CreateEntity(ByVal ds As DataSetObject) As EntityObject 

    Dim row As ds.EntityObjectRow = ds.EntityObject(0) 
    Dim entity As New EntityObject 

    entity.Id = row.Id 
    // Etc. 

    Return entity 

End Function 

他不是與公司了,所以我不能問他爲什麼他這樣做了。因此我的問題在這裏。是否有一些性能增益,或與nHibernate使用第一個實現而不是後者的可跟蹤性?

在大學時,我總是被告知不要將返回對象傳遞給方法,除非有非常具體的原因。

請指教。 :)

回答

0

從您提供的信息中創建對象從方法內部返回而不從外部接收它是沒有問題的。

我可以看到的唯一原因是他可能會將實體作爲參數傳遞,其ID已經定義並且不會在裏面更改它,因爲數據集無法知道實體的ID。但我想不是這樣。所以在我看來,按照你的建議去做吧。

+0

這也是我的第一個想法,但由於ID始終與數據集一起傳遞。我開始相信我需要對整個業務邏輯進行徹底改革和重新思考。我發現在執行過程中存在一些不一致之處,他有時以單向或雙向的方式做到這一點。它可能有這樣一個歷史性的理由,這種理由不再適用。 – 2010-11-02 12:17:23

+0

缺少更好的答案,並且因爲這是一個好的答案,所以我會將其標記爲已回答。 :) – 2010-11-16 12:19:25

相關問題