Como obter notificações de alteração de propriedade com o gerador DbContext do EF 4.x
Estou brincando com o Entity Framework 4.3 e, portanto, estou usando o DbContext Generator para criar as classes de contexto e de entidade.
Com o modelo padrão do gerador de código EF 4, as classes de entidade implementam INotifyPropertyChanged e também adicionamChanging
eChanged
métodos parciais em setters de propriedade.
Quando uso o gerador do EF 4.x DbContext, como ilustrado abaixo, as classes de entidade são muito mais leves e não incluem nenhum meio de rastrear alterações de propriedade.
Aqui está um exemplo:
//------------------------------------------------------------------------------
// <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; }
}
}
Devo estar perdendo uma peça importante do quebra-cabeça, mas minhas pesquisas foram infrutíferas. Então, minha pergunta é: como posso ter gerado tipos incluídos notificações de alteração de propriedade com a EF 4.3?
Editar
Concordo plenamente com a resposta do @derape; mas estou curioso para saber por que eu precisaria mudar.tt
arquivo quando o modelo de geração de código padrão do EF 4já tem os ganchos. Quero dizer o que dizer quando ligando a um WPFDependencyProperty
'? Sem INotifyPropertyChanged, as alterações feitas por um comando em um grupo de propriedades em um grupo de objetos não serão refletidas na interface do usuário. o que estou perdendo?