WPF/MVVM/EF-如何绑定到实体';中国的相关实体?
我有一个与用户实体对应的详细视图。每个用户实体都有一个或多个注释实体,它们在详图视图中表示为网格 因此,按照EF约定,用户模型有一个UserComments成员来表示关系:WPF/MVVM/EF-如何绑定到实体';中国的相关实体?,wpf,entity-framework,mvvm,ef-code-first,devexpress-wpf,Wpf,Entity Framework,Mvvm,Ef Code First,Devexpress Wpf,我有一个与用户实体对应的详细视图。每个用户实体都有一个或多个注释实体,它们在详图视图中表示为网格 因此,按照EF约定,用户模型有一个UserComments成员来表示关系: public partial class User { public int UserID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public virt
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; }
//....
}
公共部分类用户
{
public int UserID{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共虚拟ICollection用户注释{get;set;}
//....
}
在用户详细信息视图中创建用户评论网格时,我意识到网格没有正确绑定到ICollection(无法向网格添加新行)。经过一番挖掘,我发现我需要使用ObserverVableCollection。好的,所以我将我的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);
}
}
公共类UserDetailViewModel
{
公共虚拟用户UserData{get;set;}
私有可观察收集用户评论;
公共ObservableCollection用户评论{
获取{return\u UserComments;}
}
公共无效加载(int UserID)
{
this.UserData=UserRepo.Find(UserID);
这._UserComments=newobserveCollection(UserData.UserComments);
}
}
酷。我现在可以向网格中添加行了。但是
在这一点上,我意识到通过将User.UserComments转换为ObservableCollection,我已经失去了EF更改跟踪,并且没有简单的方法将修改/新的注释恢复到EF中
那么我是不是完全错了?是否有更好的方法更新相关数据?为了让EF跟踪集合更改,您需要在模型本身的集合中添加和删除
UserDetailViewModel.UserComments
的添加/删除事件,并修改那里的User.UserComments
集合为了让EF跟踪集合更改,您需要在模型本身的集合中添加和删除
UserDetailViewModel.UserComments
的添加/删除事件,并修改那里的User.UserComments
集合为了让EF跟踪集合更改,您需要在模型本身的集合中添加和删除
UserDetailViewModel.UserComments
的添加/删除事件,并修改那里的User.UserComments
集合为了让EF跟踪集合更改,您需要在模型本身的集合中添加和删除
UserDetailViewModel.UserComments
的添加/删除事件,并修改那里的User.UserComments
集合谢谢。我不知道使用ObserverableCollection(而不是ICollection)与实体框架“兼容”。我想我应该查一下。我必须做一个明确的演员阵容。。。你希望模型课是什么样子?谢谢。我不知道使用ObserverableCollection(而不是ICollection)与实体框架“兼容”。我想我应该查一下。我必须做一个明确的演员阵容。。。你希望模型课是什么样子?谢谢。我不知道使用ObserverableCollection(而不是ICollection)与实体框架“兼容”。我想我应该查一下。我必须做一个明确的演员阵容。。。你希望模型课是什么样子?谢谢。我不知道使用ObserverableCollection(而不是ICollection)与实体框架“兼容”。我想我应该查一下。我必须做一个明确的演员阵容。。。您希望模型类是什么样子的?
this._UserComments = new ObservableCollection<UserComment>(UserData.UserComments);
public class UserDetailViewModel
{
public virtual User UserData { get; set; }
public ObservableCollection<UserComment> UserComments
{
get { return UserData.UserComments; }
}
// other stuff...
}