Я играю с Entity Framework 4.3 и поэтому использую генератор DbContext для создания классов контекста и сущностей.
С помощью шаблона генератора кода EF 4 по умолчанию классы сущностей реализуют INotifyPropertyChanged, а также добавляют Changing
и Changed
частичные методы в наборы свойств.
Когда я использую генератор EF 4.x DbContext, как показано ниже, классы сущностей намного легче и не включают в себя никаких средств отслеживания изменений свойств.
Вот пример:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
namespace SomeNamespace
{
public partial class SomeTable
{
public SomeTable()
{
this.Children = new HashSet<Child>();
}
public long parent_id { get; set; }
public long id { get; set; }
public string filename { get; set; }
public byte[] file_blob { get; set; }
public virtual Parent Parent { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
}
Я, должно быть, упускаю важную часть головоломки, но мои поиски были бесплодными. Поэтому мой вопрос: как я могу генерировать типы, включающие уведомления об изменении свойств с помощью EF 4.3?
Правка
Я полностью согласен с @derape ответом; но мне любопытно, зачем мне нужно менять .tt
файл, когда шаблон генерации кода EF 4 по умолчанию ужеимеет хуки. Я имею в виду, как насчет привязки к WPF DependencyProperty
'? Без INotifyPropertyChanged изменения, внесенные командой в кучу свойств в группе объектов, не будут отражены в пользовательском интерфейсе. Чего мне не хватает?