【问题标题】:Bind Data Grid View from two tables using Entity framework使用实体框架从两个表中绑定数据网格视图
【发布时间】:2020-07-06 12:41:19
【问题描述】:

我正在开发一个 Windows 窗体应用程序,并且正在使用 C# 实体框架。我在数据库营和 brigtype 中有两个表。他们之间的关系使用 ID。

我试图在数据网格视图中显示这两个表,但其中一个只出现。这是我尝试过的代码:'''

 private void PopulateDataGridView()
    {
        
        using (Data.battdbEntities db = new Data.battdbEntities())
        {
            dgv.AutoGenerateColumns = true;
            dgv.DataSource = db.battalions.ToList();
        }
     }

'''

【问题讨论】:

  • 您需要使用 JOIN 使用实体框架从两个表中选择数据。您可以在entityframework.net/joining 了解实体框架中的 JOIN

标签: c# winforms


【解决方案1】:

目前您仅将battalions 绑定到DataSource。为了在您提到的关系 ID 上拥有 brigtype 数据,您需要在 ID 列上加入它们:

dataGridView1.DataSource = (from s in db.battalions
                            join c in db.brigtypes on s.ID equals c.ID  
                            //where condtion if any                                             
                            select new
                            {
                                //Column list here
                            }).ToList();

Documentation

dataGridView1.DataSource =     db.battalions.Join(
                               db.brigtypes,
                               battalion => battalion.ID,
                               brigtype => brigtype.ID,
                               (battalion, brigtype) => new
                                {
                                   //Your columns here
                                }).ToList();

如果您的 DBContext battdbEntities 没有添加 brigtypes,那么您还必须将该表添加到上下文中,如下所示 -

How to add table in Entity Framework?

【讨论】:

  • 很高兴它有帮助:)
【解决方案2】:

为什么不尝试在gridview中制作View并绑定数据。

https://www.w3resource.com/sql/creating-views/create-view-with-join.php

试试这个。

【讨论】:

  • 欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下有用:add context around the link 这样您的其他用户就会知道它是什么以及它存在的原因,然后引用最相关的您链接到的页面的一部分,以防目标页面不可用。 Answers that are little more than a link may be deleted.
  • 请检查目标页面是否可用。没有检查我们不回答。
  • 目标页面今天是否可用并不重要。将来可能无法使用。再次阅读我的评论。单独指向另一个站点的链接在这里不是可接受的答案。按照我给你的链接阅读它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多