如何在wpf中将EF返回的列表转换为observableList
我是wpf的新手。我正在尝试使用entityframework在wpf中创建crud。 这是我的模型如何在wpf中将EF返回的列表转换为observableList,wpf,entity-framework,Wpf,Entity Framework,我是wpf的新手。我正在尝试使用entityframework在wpf中创建crud。 这是我的模型 class User : INotifyPropertyChanged { private string _id; private string _firstName; private string _lastName; public User() { } public string ID { get { r
class User : INotifyPropertyChanged
{
private string _id;
private string _firstName;
private string _lastName;
public User()
{
}
public string ID
{
get { return _id; }
set
{
_id = value;
NotifyOfPropertyChange("ID");
}
}
public string FirstName
{
get { return _firstName; }
set
{
_firstName = value;
NotifyOfPropertyChange("FirstName");
}
}
public string LastName
{
get { return _lastName; }
set
{
_lastName = value;
NotifyOfPropertyChange("LastName");
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyOfPropertyChange(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
当我添加ado.net数据模型文件时,它会创建如下类
public partial class User
{
public string ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
所以当我试着像这样分配列表时
ObservableCollection<User> lst = new ObservableCollection<User>();
lst = _entity.Users.ToList();
这给了我错误
Error 1 Cannot implicitly convert type 'System.Collections.ObjectModel.ObservableCollection<TEST.User>' to 'System.Collections.Generic.List<TEST.Model.User>' D:\my_backup\WPF\TEST\TEST\Model\PersonnelBusinessObject.cs 15 24 TEST
如何根据我的类格式将其转换为。请提供帮助。您可以通过LINQ Select方法将一种集合类型映射到另一种集合类型:
可以通过LINQ Select方法将一种集合类型映射到另一种集合类型:
Try observateCollection lst=new observateCollection_entity.Users.ToListi也尝试了这个方法。仍然得到相同的错误:正如我从错误消息中了解到的,您试图将不同的用户类TEST.User转换为TEST.Model.User。编译器只是不知道默认情况下如何进行这种转换。您可以尝试_entity.Users.ToList.Selectu=>new TEST.Model.User{Id=u.Id,FirstName=u.FirstName,LastName=u.LastName,}并从生成的IEnumerable中进行ObservableCollection。c编译器不知道如何在两种用户类型之间进行转换。在这些类型之间编写转换器,或在初始化时填充ViewModel属性。@Clemens太多次了,我看到贡献者在注释中写的太多了,所以答案很明显。。。轮到我了;Try observateCollection lst=new observateCollection_entity.Users.ToListi也尝试了这个方法。仍然得到相同的错误:正如我从错误消息中了解到的,您试图将不同的用户类TEST.User转换为TEST.Model.User。编译器只是不知道默认情况下如何进行这种转换。您可以尝试_entity.Users.ToList.Selectu=>new TEST.Model.User{Id=u.Id,FirstName=u.FirstName,LastName=u.LastName,}并从生成的IEnumerable中进行ObservableCollection。c编译器不知道如何在两种用户类型之间进行转换。在这些类型之间编写转换器,或在初始化时填充ViewModel属性。@Clemens太多次了,我看到贡献者在注释中写的太多了,所以答案很明显。。。轮到我了;
using System.Linq;
...
var lst = new ObservableCollection<User>(
_entity.Users.Select(u =>
new User { ID = u.ID, FirstName = u.FirstName, LastName = u.LastName }));