Silverlight アプリケーションで EF4/RIA コンボを使用しています。
に複数のサービス メソッドがありますDomainService
。
メソッドの 1 つは、データベースからいくつかのデータを取得し、オブジェクトの値を変更します。
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
のは、2 番目のサービス メソッドでのこの呼び出しが、最初のサービス メソッドの呼び出しで行われた変更に影響するかどうかです。
それとも、すべての RIA クエリ/サービス呼び出しで新しい EF ObjectContext が作成されますか?