C#如何将实体框架实体与ObservableCollection一起使用

时间:2018-03-04 12:28:11

标签: c# wpf entity-framework-6

当我尝试那个

using (var db = new NewDbContext())
{
    var AllItems = new ObservableCollection<db.Items>();
    ItemsDataGrid.ItemsSource = AllItems;
}

我收到了这个错误

  

'db'是一个变量,但用作类型

2 个答案:

答案 0 :(得分:1)

那是因为db.Items不是Type而是某种类型的集合(我认为该类型是Item?)。

所以试试这个:

    var AllItems = new ObservableCollection<Item>(db.Items);
    ItemsDataGrid.ItemsSource = AllItems;

答案 1 :(得分:1)

db.Items将返回IQueryable<Item>类型的集合。您似乎希望将IQueryable<T>的结果转换为ObservableCollection<T>

您实际上需要在Items的构造函数中传递Observable。正确的代码是:

ObservableCollection<Item> AllItems = new ObservableCollection<Item>(db.Items);

然后:

ItemsDataGrid.ItemsSource = AllItems;

希望它有所帮助。