ASP.NET MVC アプリケーションで、プロキシベースの変更追跡で EF5 コード ファーストを使用しています。ドメイン クラスの 1 つに、頻繁に更新される数値プロパティが含まれています。このため、このプロパティはフレームワークを使用してデータベースに保持されません。
public virtual int CurrentSessions
{
get
{
return _currentSessions;
}
set
{
Interlocked.Exchange(ref _currentSessions, value);
}
}
私が直面している問題は、プロパティの値がセッション間で更新されないことです。私の API コントローラーは、次のように、内部ロジックに従って、上記の値を増加または減少させます。
myObj.CurrentSessions++;
また
myObj.CurrentSessions--;
ここで、myObj は、各セッションで LINQ を介してコンテキストから取得されたプロキシ オブジェクトです。
var myObj = objectContext.Instances<myPocoEntity>().FirstOrDefault(cb => cb.SomeProp == someValue);
増減後に myObj.CurrentSessions の値を調べると、確かに更新されますが、次のサーバー要求で myObj が再度取得されると、CurrentSessions の初期値は常にゼロになります。
コンテキスト全体の変更をスキャンせずに、POCO エンティティでプロパティ値が更新されていることを確認するにはどうすればよいですか?