WPF and LINQ/SQL - how and where to keep track of changes?
- by Groky
I have a WPF application built using the MVVM pattern:
My Models come from LINQ to SQL.
I use the Repository Pattern to abstract away the DataContext.
My ViewModels have a reference to a Model.
Setting a property on the ViewModel causes that value to be written through to the Model.
As you can see, my data is stored in my Model, and changes are therefore tracked by my DataContext.
However, in this question I read:
  The guidelines from the MSDN
  documentation on the DataContext class
  are what I would recommend following:
  
  In general, a DataContext instance is
  designed to last for one "unit of
  work" however your application defines
  that term. A DataContext is
  lightweight and is not expensive to
  create. A typical LINQ to SQL
  application creates DataContext
  instances at method scope or as a
  member of short-lived classes that
  represent a logical set of related
  database operations.
How do you track your changes? In your DataContext? In your ViewModel? Elsewhere?