UnitOfWork を使用してデータベースの変更をコミットした後、XPCollection のデータを更新する際に問題が発生しました。
XPCollection を持つ WinForm があります。
XPCollection は XpoDefault.Session を使用します。
UnitOfWork を通じていくつかの変更を行います。
using (UnitOfWork uow = new UnitOfWork())
{
var photos = new XPCollection<Photo>(uow);
photos[0].Date = DateTime.Now;
uow.CommitTransaction();
}
元の XPCollection を取得して変更を更新するために、次のことを試しました。
foreach (Photo photo in myXPCollection)
{
XpoDefault.Session.Reload(photo);
}
foreach (Photo photo in myXPCollection)
{
photo.Reload();
}
myXPCollection.Reload()
どのメソッドも機能しません。変更は元の XPCollection には反映されません。
それらは、完全に新しいセッションで開始したときにのみ表示されます。明らかに、これはパフォーマンス上の大きな問題です。
UnitOfWork を使用して行われた変更を別のセッションに取得する方法は?