データベース内のオブジェクトの更新に問題があります。私は 2 台の PC と 2 つのアプリケーションを持っています。
最初の PC には、データベースと通信して Measurements テーブルにデータを追加するアプリケーションがあります。私の別の PC には、タイマーで最新の測定値を取得するアプリケーションがあるため、最初の PC でもアプリケーションによって追加された測定値を取得する必要があります。
問題はそうではないということです。私のアプリケーションの起動時に、データベースからすべてのデータがキャッシュされ、新しいデータが追加されることはありません。キャッシュされたデータを変更するとうまく機能する Refresh() メソッドを使用しますが、新しく追加されたデータは更新されません。
データを更新する必要がある私の方法は次のとおりです。
public static Entities myEntities = new Entities();
public static Measurement GetLastMeasurement(int conditionId)
{
myEntities.Refresh(RefreshMode.StoreWins, myEntities.Measurements);
return (from measurement in myEntities.Measurements
where measurement.ConditionId == conditionId
select measurement).OrderByDescending(cd => cd.Timestamp).First();
}
PS アプリケーションの app.config には異なる接続文字列があります (同じ DB に対して異なるアカウント)。