代码之家  ›  专栏  ›  技术社区  ›  Marcus L

返回对象作为nHibernate实体的参数

  •  0
  • Marcus L  · 技术社区  · 15 年前

    我正在编写一个解决方案,其中数据实体通过wcf服务使用数据集传递给客户机,nhibernate作为ORM。

    我的前任编写了一些翻译类,将数据集转换为实体,反之亦然。在大多数情况下,他将返回对象声明为对象的参数。

    例如:

    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是否有一些性能提升或可跟踪性?

    在大学里,我总是被告知不要将返回对象传递给方法,除非有非常具体的原因。

    请给出建议。:)

    1 回复  |  直到 15 年前
        1
  •  0
  •   Pedro    15 年前

    根据您提供的信息,创建从方法内部返回而不是从外部接收的对象没有问题。

    我能看到的唯一原因是,他可能将实体作为一个已经定义了ID的参数传递,并且不会在内部更改它,因为数据集不知道实体的ID。但我想情况并非如此。所以在我看来,照你的建议去做吧。