Я использую комбо EF4 / RIA в приложении Silverlight.
У меня есть несколько методов обслуживания в моем DomainService
.
Один из методов выбирает некоторые данные из базы данных, а затемизменяет значения объектов:
IEnumerable<Factor> GetModifiedFactors(double threshold)
{
List<Factor> factors = ObjectContext.Where(f => f.Id == selectedId).ToList();
for(int i = 1; i < factors.Count; i++)
{
Factor current = factors[i];
Factor previous = factors[i - 1];
// Note that here the value of the entity object has been changed
current.Value = 2 * current.Value - 3 * previous.Value;
}
return factors.Where(f => f.Value > threshold);
}
Эти вычисленные значения затем возвращаются в приложение SL.
Обратите внимание, что в этом примере значение объекта сущности было изменено.
У меня есть другой сервис метод, который изменяет некоторые данные и затем вызывает .SaveChanges()
.
[Invoke]
public void ResetFactor(int factorId, double defaultValue)
{
Factor factor = ObjectContext.Factors.FirstOrDefault(f => f.Id == factorId);
if(factor == null)
return;
factor.Value = defaultValue;
ObjectContext.SaveChanges();
}
Вопрос:
Что я хочу знать, так это то, повлияет ли этот вызов на SaveChanges
во втором методе обслуживания на изменения, внесенные в вызов на метод первого сервиса?
Или каждый запрос / сервисный вызов RIA создает новыйEF ObjectContext?