Updating a collection to db

This may be a little naive but I just want check my way of doing this is correct.
I receive a collection of objects from the UI.
I then wish to check those objects against the records in the db.

This is what I am doing to Create Update and Delete the received objects.

  1. Loop trough received objects – if
    (id == 0 ) create new record.
  2. Retrieve existing records from db;
  3. Loop existing records – Where
    (existing record id == recieved
    object id) Update record.
  4. If the
    record exists in the existing
    records but not in the received
    objects – Delete.

This seems the most logical way to do this. I am using NHibernate and was kind of wondering whether there was another way I should be looking into.
Any help much appreciated.

.NET Best approach to implementing client/server queuing model with external app?

Here is the spec:

  1. Multiple clients using a WPF winforms application on their local machines
  2. Clients initiate requests to the server to execute a simulation. This initiation should probably be via a web service but other suggestions are welcome
  3. Requests are queued on the server
  4. Server sends out sequential requests to the simulation model via a web service.
  5. Server informs client that simulation is complete

An additional requirement is to have a client cancel a request they have previously made. Note that we dont have to worry about sending too much data down the pipe, we are only sending confirmation that a particular simulation run completed (or failed)

To begin with I thought I could do all of this with a single asmx web service, but now I think that might be unwieldy. WCF seems like another option, but I am not familiar with it and it seems far more complicated than the functionality I need.

Any ideas?