3

私は現在、最初の Linq-to-Sql アプリに取り組んでいます。次のように、dataContext の有効期間が短いデータ アクセス メソッドを実装しました。

public IProduct GetByCode(string code)
{
   using (var db = new dataContext())
   {
      return db.Products.SingleOrDefault(e => e.Code == code);
   }
}        

clr-properties の変更通知を取得する方法を知りたいです。単一の dataContext がある場合、これは問題ではありません。

問題は、エンティティのインメモリ変更を取得するにはどうすればよいですか?!

2 つの異なる画面で変更できるエンティティがあります。一方の画面での更新は、他方の画面でも表示される必要があります。私が見る唯一の可能性は、アプリケーションの寿命に帰着する、両方の画面と同じ寿命を持つようにすることです。

Unit of Work パターン (要求ごと) と完全なデータバインディング機能の間に摩擦を感じます。何が欠けているか教えてください...

4

1 に答える 1

0

LINQ to SQLで生成されたクラスは、INotifyPropertyChangedを実装しているため、これを使用して、メモリ内の元のオブジェクトへの変更を監視できます。

ただし、両方の画面が同じインスタンスを指している必要があり、独自のコピーはありません(これは事実のように聞こえますか?)。

UI画面で使用するバインディングの種類はわかりません。WPF/Silverlightでバインディングを使用している場合は、データソースが2つの画面で共有されるMVVMアプローチを使用することをお勧めします。

于 2011-10-06T00:47:29.100 に答える