将列添加到实体框架数据绑定数据网格视图

本文关键字:数据 数据网 网格 视图 数据绑定 框架 添加 实体 | 更新日期: 2023-09-27 18:24:01

在我的软件中,我制作了一些实体:

public abstract class Product 
{
    public int ProductId { get; set; }
    public string name{ get; set; }
}
public class type1 :Product
{
    public int number{ get; set; }
    public string extradata{ get; set; }
    public bool uitgeleend { get; set; }
}
public class type2 : Product
{
    [Display(Name = "Merk en type")]
    public string type { get; set; }
    public string extradata{ get; set; }
    public bool available{ get; set; }
}

为了显示这是一个数据网格视图,我有这样的表达式:

var results =db.producten.Where(c => c is type1|| c is type2).ToList();
        dataGridView1.DataSource = results;

问题是,EF将extradata放在表中,作为类型1的extradata,以及类型2的extradata1。当我想通过将我的额外数据添加到我的网格视图中时

this.dataGridView1.Columns["extradata"].Visible = true;

我得到了一个nullreferenceException,因为type2不包含这样的列。如何在数据网格视图中显示该列,而不会对实体进行过多更改?

将列添加到实体框架数据绑定数据网格视图

您可以将DataTable用于此目的

从列表中创建一个DataTable,根据需要添加更多列,绑定DataTableDataGridView

你完了。

我想你可以试试这个:
不确定只是一点点尝试:

var results =db.producten.Where(c => c is type1|| c is type2).ToList();