1.
public void UpdateFoods()
{
using (FoodsDataContext context = new FoodsDataContext())
{
food firstFood = (from f in context.foods
where f.id == 1
select f).First<food>();
firstFood.calories = 100;
context.SubmitChanges();
}
}
2.
public bool UpdateCustomFood(food customFood)
{
bool result = false;
using (DataLayerDataContext context = new DataLayerDataContect())
{
context.foods.Attach(customFood, true);
try
{
context.SubmitChanges();
result = true;
}
catch (ChangeConflictException e)
{
// Handle the change conflict here
}
return result;
}
}
3.You can either pass in both a copy of the new object along with the original or you can choose to have LINQ to SQL ignore concurrency altogether. Here is the same update method that sends back a copy of the original object along with the updated version:
public bool UpdateCustomFood(Food original, Food updated)
{
bool result = false;
using (DataLayerDataContext context = new DataLayerDataContect())
{
context.foods.Attach(original, false);
original.name = updated.name;
try
{
context.SubmitChanges();
result = true;
}
catch (ChangeConflictException e)
{
// Handle the change conflict here
}
return result;
}
}