chobo2
chobo2

Reputation: 85715

How to update in Linq to SqL?

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

Upvotes: 0

Views: 324

Answers (4)

marc_s
marc_s

Reputation: 754230

In the case you have the dbContext available and ready, just add InsertOnSubmit:

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

Dbcontext.InsertOnSubmit(myEntity);

Dbcontext.SubmitChanges();

As the name of the method implies, this will insert your new entity into the database on calling SubmitChanges.

Marc

Upvotes: 1

Elijah Glover
Elijah Glover

Reputation: 1976

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).

Upvotes: 0

joshperry
joshperry

Reputation: 42227

If you want to do this for performance reasons then you shouldn't worry about it. Linq to Sql will cache objects locally so that just grabbing an entity by ID to modify some fields is very cheap.

Upvotes: 0

David
David

Reputation: 25450

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)

Upvotes: 2

Related Questions