C# 如何在Entity Framework 5中获取修改对象列表
我将C# 如何在Entity Framework 5中获取修改对象列表,c#,winforms,entity-framework-5,C#,Winforms,Entity Framework 5,我将实体列表绑定到数据网格视图,如下所示: var orders = context.Order.ToList(); BindingList<Order> orderList = new BindingList<Order>(orders); dataGridView1.DataSource = orderList; 编辑2求解: BindinList<Order> orders = (BindingList<Order>)dataGridV
实体列表绑定到数据网格视图,如下所示:
var orders = context.Order.ToList();
BindingList<Order> orderList = new BindingList<Order>(orders);
dataGridView1.DataSource = orderList;
编辑2求解:
BindinList<Order> orders = (BindingList<Order>)dataGridView1.Datasource;
Order order = new Order();
context.Order.Add(order);
order.Add(order);
BindinList orders=(BindinList)dataGridView1.Datasource;
订单=新订单();
context.Order.Add(Order);
订单。添加(订单);
System.Data.Entity
必须被引用才能使用.ToBindingList()
并且您必须使用EF4.1或更高版本。感谢您的快速响应。您的代码可以获取已修改实体的列表,但无法获取新实体的列表。我提供了用于添加新实体的代码。你能帮我弄清楚吗?@DoanCuong,请看更多的答案细节。对不起,你能告诉我如何实现BindingSource.Add()
或IBingdingList.Add()
?还有一件事,在dbset.local
上没有ToBindingList()
函数。唯一的方法是使用var bindingList=newbindingList(context.Orders.Local.ToList())代码>@DoanCuong,答案已更新。它可能比我所说的更复杂,这取决于你的实体,但通过一些研究,你应该能够解决它。谢谢你的教训,先生!这真的帮了我的忙。
BindinList<Order> orders = (BindingList<Order>)dataGridView1.Datasource;
Order order = new Order();
context.Order.Add(order);
order.Add(order);
List<Object> modifiedOrAddedEntities = context.ChangeTracker.Entries()
.Where(x => x.State == System.Data.EntityState.Modified
|| x.State == System.Data.EntityState.Added)
.Select(x=>x.Entity).ToList();
context.Orders.Load();
BindingList<Order> bindingList = context.Orders.Local.ToBindingList();
BindingSource ordersBindingSource = new BindingSource();
ordersBindingSource.DataSource = bindingList;
dataGridView1.DataSource = ordersBindingSource ;