Возврат объекта в качестве параметра для сущности nHibernate - PullRequest
0 голосов
/ 02 ноября 2010

Я пишу решение, в котором сущности данных передаются клиентам с использованием наборов данных через службу 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 Ответ

0 голосов
/ 02 ноября 2010

Из предоставленной вами информации нет проблем с созданием объекта, который будет возвращаться изнутри метода и не будет получен извне.

Единственная причина, которую я вижу для этого, заключается в том, что, возможно, он передает сущность в качестве параметра с уже определенным идентификатором и не меняет его внутри, поскольку набор данных не может знать идентификатор сущности.Но я думаю, что это не так.Так что, по моему мнению, действуйте так, как вы предлагаете.

...