Question: every example I seen shows how to do a update query in linq to sql by doing this.

```
// grab entity you want to update

entity.UserId = "123"; // update the fields you want to update.
entity.Name = "bob";

Dbcontext.SubmitChanges();

```

I am wondering can you juse pass in a new object and have it figure it out?

Like could I do this?

```
Enity myEntity = new Entity();
myEntity.UserId = "123";
myEntity.Name = bob:

    // grab entity record
    // shove record ito the found record
    // it figured out what to update and what no to update

```

Answer: 
Depending on what exactly you want to do you either need the `InsertOnSubmit` method, or the `Attach` method of the respective table (i.e. dbContext.Entities). InsertOnSubmit is used to add a record, while Attach can be used if you want to affect an `UPDATE` without having to first `SELECT` the record (you already know the primary key value)
It's possible to attach and persist it to the database, however you may want to set a field to check for concurrency (ie LastModified).

If you are going to use the Attach method on the data context, **you need to set the primary/composite keys** before you attach the entity (so you don't trigger **INotifyPropertyChanging, INotifyPropertyChanged** events).