none
Entity Framework 4.1 的Local().ToBindingList(),之后如何筛选? RRS feed

  • 问题

  • 类型:WinForm
    模型:Customer --> Order
    使用DataBase First ,自动生成模型(其中Customer下的Order集合为ICollection<Order>)
    现在欲实现orderBindingSouce对应1个DataGridView的显示,并双向绑定。
    C# code
    Customer customer1 ; //已准备好的Customer对象 context.Order.Load(); //载入所有Order表中的数据 //此时可以双向绑定所有order显示,但我需要的是前面customer1对象下的所有orders orderBindingSource.DataSource = context.Order.Local().ToBindingList(); //直接如下绑定,无法双向绑定,且无法新增(Fix Size) orderBindingSource.DataSource = customer1.Orders; //如下绑定,显示是正确的,但无法双向绑定 orderBindingSource.DataSource = context.Order.Local().Where(m=>m.CustomerID == customer1.ID);

    尝试设置
    C# code
    orderBindingSource.Filter = string.Format("CustomerID = '{0}'",customer1.ID)
    也不行。
    目前仅想到一种‘变通’的办法绕过去:每次Load前清空本地相关Order数据,筛选放在Load时做,这样Local查询的所有结果就是需要的了。(因为context是在这个Form生存期内有效的,无法保证其他操作不加载Order数据,所以Load前都要清空,感觉很麻烦。)

    特征询求解:用了Local().ToBindingList()之后,如何实现筛选?
    2011年9月23日 5:58

全部回复