views:

37

answers:

3

Hi,

We're developing a business ASP.NET application. Is it better to pass an entire entity to a method or pass each property of this entity as parameters? What is the best practice? Case 1. Pass Customer entity to a manager - InsertCustomer(Customer cust) Case 2. Pass each property as a parameter - InsertCustomer(string name, string address...etc)

P.S. We're using Entity Framework as our data access layer

+1  A: 

You should pass the entire entity as when you update the entity, e.g. add or remove members you do not have to update all your method calls in all your layers. You only need to change your datalayer and the layer where you are consuming the entity. asp.net is Object Oriented and therefore you should orientate your code around your objects

skyfoot
+1  A: 

The whole concept of object orientation requires objects to be passed around. If all is happening internally I would go with this.

If this is being posted to a webservice / across a network etc you would need to serialize, and hence may find it better to pass each individual parameter, especially if the receiving framework is different.

Don't forget your Strings etc are all objects too.

I agree with another poster, passing a whole entity "encapsulates" everything so that it can be updated/modified so you have less to worry about.

m.edmondson
+3  A: 

Pass the entire entity, not only for reasons given in the other answers, but generally methods with long parameter chains are bad. They are prone to error, and tough to work with from a development standpoint (just look at Interop with Office)

In general, if I see I am getting too many parameters (usually more than three), either I have a method trying to do too much, or I explore ways of encapsulating this data in a struct.

Bob Palmer