Короче говоря, начиная с CTP 4 EF CodeFirst, существует новое свойство объекта CodeFirst dbSet .Local. .Local - это ObservableCollection, которая реализует INotifyPropertyChanged. Таким образом, если у вас есть код dbcontext, который предоставляет DbSet (Of Task), называемый Tasks, вы можете установить контекст данных формы в Tasks.Local.

одель полностью настроена для моего приложения WPF и вначале работаю с кодом ctp5 инфраструктуры объектов, вот пример класса модели:

public class Task
{
    public int ID { get; set; }
    public int Index { get; set; }
    public string Content { get; set; }
    public int Indentation { get; set; }
    public DateTime Start { get; set; }
    public decimal Effort { get; set; }
    public decimal CompletedEffort { get; set; }
    public decimal Cost { get; set; }
}

Каков был бы рекомендуемый способ построить мою модель представления? Мои модели представлений будут реализовывать INotifyPropertyChanged, я не хочу, чтобы классы моделей имели какой-либо специфический для пользовательского интерфейса код, чтобы их можно было легко использовать в других приложениях. Должен ли я сделать все свойства модели виртуальными, а затем переопределить их в модели представления? (кажется, много ненужного кодирования ...) Будет ли код EF сначала хорошо играть с этим типом формата?

редактировать Это несколько похожий вопросВ MVVM должен ViewModel или Model реализовать INotifyPropertyChanged? однако единственные решения, по-видимому, включают в модель то, что я считаю логикой пользовательского интерфейса. Возможно, я могу добавить своего рода делегата в модель и подключить его к модели представления, которая, в свою очередь, будет использовать INotifyPropertyChanged ... что-то вроде этого?

    public class Task
    {
        public delegate void HandleChange(string propertyName);
        public HandleChange ChangeHandler;

        public int ID 
        { 
            get
            {
                return ID;
            } 
            set
            {
                if(ID != value)
                {
                    ID = value;
                    ChangeHandler("ID");
                }
            }
        }
...

Ответы на вопрос(2)

Ваш ответ на вопрос