如何使用 Entity Framework 将多个表中的数据绑定到 datagridview 并使用 CRUD 操作?
Posted
技术标签:
【中文标题】如何使用 Entity Framework 将多个表中的数据绑定到 datagridview 并使用 CRUD 操作?【英文标题】:How to bind data from mutiple tables to datagridview using Entity Framework and use CRUD operations? 【发布时间】:2014-07-19 06:29:30 【问题描述】:有人可以举例说明如何将结果绑定到从实体框架中的多个表(来自连接查询)中获取的数据网格视图。实际上我可以将数据绑定到 datagridview 但是当我调用时
context.SaveChanges(); 数据库中没有任何更新。如何使用 Update、Insert、Delete 函数正确地将数据绑定到 datagridview。
这是我尝试过的。
public class DataBindingProjection
public string dono get; set;
public int apmntid get; set;
public string servicedesc get; set;
public string cusid get; set;
public string empid get; set;
public bool isdelivered get; set;
context = new HHCSEntities();
var query = from d in context.DeliveryOrders
join a in context.Appointments on d.ApmntId equals a.ApmntId
join s in context.ServiceCategories on d.ServiceId equals s.ServiceId
join e in context.Employees on d.EmpId equals e.EmpId
select new DataBindingProjection
dono = d.DONo,
apmntid = a.ApmntId,
servicedesc = s.ServiceDesc,
cusid = a.CusId,
empid = d.EmpId,
shortname = e.ShrtName,
isdelivered = d.IsDelivered
;
dataGridView1.DataSource = query.ToList();
dataGridView1.Columns[1].DataPropertyName = "dono";
dataGridView1.Columns[2].DataPropertyName = "apmntid";
dataGridView1.Columns[3].DataPropertyName = "servicedesc";
dataGridView1.Columns[4].DataPropertyName = "apmntid";
dataGridView1.Columns[5].DataPropertyName = "empid";
dataGridView1.Columns[9].DataPropertyName = "isdelivered";
提前致谢。
【问题讨论】:
【参考方案1】:在给出查询结果后,你应该这样写:
...
BindingSource bi = new BindingSource();
bi.DataSource = query.ToList();
dataGridView1.DataSource = bi;
dataGridView1.Refresh();
...
【讨论】:
以上是关于如何使用 Entity Framework 将多个表中的数据绑定到 datagridview 并使用 CRUD 操作?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用扩展方法加入 .NET Entity Framework 中的多个列?
使用 Entity Framework 将相同的更改保存到多个数据库
如何使用 FromSqlRaw Entity Framework Core 3.1 从存储过程中返回多个 SELECT 集
如何使用 Entity Framework Core 在不同的表中多次添加对象 [跟踪错误]