如何使用 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 在不同的表中多次添加对象 [跟踪错误]

使用具有多个 DB 模式但使用一个 DBContext 的 Entity Framework 6

探究Entity Framework如何在多个仓储层实例之间实现工作单元的实现及原理