Search code examples
c#linqentity-frameworkentity-framework-4linq-to-entities

LINQ to Entities how to update a record


Okay, so I'm new to both EF and LINQ. I have figured out how to INSERT and DELETE but for some reason UPDATE seems to escape my grasp.

Here is a sample of my code:

EntityDB dataBase = new EntityDB();
Customer c = new Customer
{
     Name = "Test",
     Gender = "Male
};
dataBase.Customers.AddObject(c);
dataBase.SaveChanges();

The above creates and adds a record just fine.

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             selext x).First();
dataBase.Customers.DeleteObject(c);
dataBase.SaveChanges();

The above effectively deletes the specified record.

Now how do I update? I can't seem to find an "UpdateObject()" method on the entity collection.


Solution

  • Just modify one of the returned entities:

    Customer c = (from x in dataBase.Customers
                 where x.Name == "Test"
                 select x).First();
    c.Name = "New Name";
    dataBase.SaveChanges();
    

    Note, you can only update an entity (something that extends EntityObject, not something that you have projected using something like select new CustomObject{Name = x.Name}