Это то, что у меня есть в моей службе WCF
public long Generic_Save(Product p, ObjectSet os)
{
if (p.Id == 0)
{
os.AddObject(p);
}
else
{
// UPDATE
Product original = os.Single<Project>(o => o.Id == p.Id);
original.Name = p.Name;
original.Items = p.Items; // doesn't work !
}
dataEntities.SaveChanges();
return p.Id;
}
Product p
- это объект из вызова WCF с EntityKey и т. Д., Но он не привязан к текущим dataEntities.
Что я хочу сделать, это сохранить объект Product p
напрямую, чтобы не получать оригинал из ObjectSet os
до этого и изменять значения -> Product original = os.Single<Project>(o => o.Id == p.Id);
Как я могу это сделать?
[EDIT]
Я попытался добавить новые элементы, и это работает
foreach (Item item in p.Items)
{
try
{
dataEntities.Items.ApplyCurrentValues(item);
}
catch (Exception)
{
Items i = new Items();
// Set prop here or make a method CopyTo()
i.Prop = item.Prop;
dataEntities.AddToItems(i);
}
}
dataEntities.SaveChanges();