У меня есть подробное представление, соответствующее пользовательскому объекту. Каждый пользовательский объект имеет один или несколько объектов комментариев, которые представлены в подробном представлении в виде сетки.
Таким образом, следуя соглашению EF, пользовательская модель имеет член UserComments для представления отношения:
public partial class User
{
public int UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<UserComments> UserComments { get; set; }
//....
}
Когда пришло время создать сетку комментариев пользователя в представлении сведений о пользователе, я понял, что сетка неправильно привязывается к ICollection (не удалось добавить новые строки в сетку). Немного покопавшись, я обнаружил, что мне нужно использовать ObservervableColletion. Итак, я преобразовал свою ICollection в ObserverableCollection....
public class UserDetailViewModel
{
public virtual User UserData { get; set; }
private ObservableCollection<UserComments> _UserComments;
public ObservableCollection<UserComment> UserComments {
get { return _UserComments; }
}
public void Load(int UserID)
{
this.UserData = UserRepo.Find(UserID);
this._UserComments = new ObservableCollection<UserComment>(UserData.UserComments);
}
}
Прохладно. Теперь я могу добавлять строки в сетку. Но...
На данный момент я понял, что потерял отслеживание изменений EF, преобразовав User.UserComments в ObservableCollection, и у меня нет простого способа вернуть измененные/новые комментарии обратно в EF.
Итак, я подошел ко всему этому неправильно? Есть ли лучший способ обновления связанных данных?