Я использую Entity Framework 6 (первая модель). Поэтому у меня есть несколько классов, которые создаются для меня по model.tt. Вот мой класс автомобиля:Добавление PropertyChanged.Fody в Entity Framework Model.tt
//------------------------------------------------------------------------------
// <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>
//------------------------------------------------------------------------------
namespace MyNamespace
{
using System;
using System.Collections.Generic;
public partial class Car
{
public Car()
{
this.Wheels = new HashSet<Wheel>();
}
public int CarId { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public string Year { get; set; }
public string VIN { get; set; }
public virtual ICollection<Wheel> Wheels { get; set; }
}
}
Я также использую PropertyChanged.Fody на другие классы в моем проекте. У меня есть несколько классов со свойствами, которые просто оберточной свойства из моих сгенерированных классов, например, так:
using System;
using PropertyChanged;
namespace MyNamespace
{
[ImplementPropertyChanged]
public class CarWrapper
{
public CarWrapper(Car car)
{
Car = car;
}
public Car car { get; set; }
public string Make
{
get { return Car.Make; }
set { Car.Make = value; }
}
public string Model
{
get { return Car.Model; }
set { Car.Model = value; }
}
public string Year
{
get { return Car.Year; }
set { Car.Year = value; }
}
public string VIN
{
get { return Car.VIN; }
set { Car.VIN = value; }
}
}
}
Так, ProperyChanged.Fody бы это волшебство на моей собственности автомобиля, а не другие, но если бы я изменить my Model.tt и добавьте атрибут [ImplementPropertyChanged]
, мои сгенерированные классы будут уведомлять об изменении свойств. Тогда я мог бы изменить автомобиль в собственность CarWrapper следующим образом:
[AlsoNotifyFor("Make")]
[AlsoNotifyFor("Model")]
[AlsoNotifyFor("Year")]
[AlsoNotifyFor("VIN")]
public Car car { get; set; }
Будет ли это хорошая вещь, чтобы делать вообще, если я хочу, чтобы получать уведомления об изменении собственности в автомобиле? Было бы лишним? Любые другие предложения?