Я использую слабосвязанную модель между моим клиентом Silverlight и моим DomainService.Я использую POCO с EF 4.1
Я не использую какие-либо леса, предлагаемые инструментами.
Класс DomainService объявлен как:
public partial class MyDomainService : DbDomainService<MyContext>
{
...
}
Метод обновления у меня следующий:
public UpdatePerson(PersonInfo source)
{
var person = DbContext.People.Find(source.Id);
person.Name = source.Name;
DbContext.SaveChanges();
}
Но когда я проверяю базу данных вручную, изменение не сохраняется.Однако если я изменю код так, чтобы он выглядел следующим образом - все в порядке:
public UpdatePerson(PersonInfo source)
{
using(var context = GetDbContext())
{
var person = context.People.Find(source.Id);
person.Name = source.Name;
context.SaveChanges();
}
}
Полагаю, я не возражаю против создания собственной локальной переменной контекста, но мне интересно, что происходит вохватывает, что первый подход не работает.