Привязка EF4 с CALIBURN.Micro: я должен подвергнуть мою сущность как Свойство ViewModel?

с Caliburn.micro Я хотел бы знать плюсы и минусы разоблачения объекта EF4 как свойство ViewModel (подробное описание здесь И вот ). Это позволяет мне избегать писать Getter и Setters для каждого поля (см. Onecustomer ниже). Недостаток в том, что мне нужно написать все утверждения привязки в XAML (ниже lastname не в ViewModel, но требует привязки XAML). Если я придерживаюсь назначенной технике наполнения моего просмотра моделя со свойствами для каждого поля (как и первое значение ниже), я в конечном итоге пришлось написать тонну дополнительного кода, так что NotifyofProperyChange будет вызывать. Приложение будет довольно большим. Должен ли я разоблачить каждую сущность в качестве свойства ViewModel?

в моем просмотру:

private MyEntities _context = new MyEntities();
private BindableCollection _custBindableCollection; 
private Customer _oneCustomer;
private string _firstName;

public void Load() 
{
    _custBindableCollection = new BindableCollection(_context.Customers.Where(row => row.CustomerType == "FOO"));
    AllCustomers = _custBindableCollection;
    _oneCustomer = _custBindableCollection.FirstOrDefault();
    FirstName = _oneCustomer.FirstName;
    OneCustomer = _oneCustomer;
}

public BindableCollection AllCustomers
{ 
get { return _custBindableCollection;}
set {_custBindableCollection = value;
      NotifyOfPropertyChange(() => AllCustomers);}
}

public Customer OneCustomer
{
 get { return _oneCustomer;}
 set { _oneCustomer = value;
        NotifyOfPropertyChange(() => OneCustomer);}
} 

public string FirstName
{
    get { return _firstName; }
    set {
        _firstName = value;
        _oneCustomer.FirstName = value;
        NotifyOfPropertyChange(() => FirstName);
        NotifyOfPropertyChange(() => CanSaveChanges);
    }
}

public void SaveChanges()
{ _context.SaveChanges(); }

public bool CanSaveChanges { get { return IsValid; } }

На мой взгляд:



    

    

заранее спасибо.

5
задан Sachin Chavan 24 October 2013 в 04:16
поделиться