将列添加到Entity framework数据绑定datagridview

时间:2013-07-21 09:28:10

标签: c# .net winforms entity-framework datagridview

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

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; }
}

要显示这是一个datagridview,我有这个表达式:

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

问题是,EF将extradata作为type1的extradata和type2的extradata1放在表中。当我想通过

将我的extradata添加到gridview时
this.dataGridView1.Columns["extradata"].Visible = true;

我得到一个nullreferenceException,因为type2不包含这样的列。如何在我的datagridview中显示列,而不会过多地更改实体?

2 个答案:

答案 0 :(得分:1)

您可以将DataTable用于此目的

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

你已经完成了。

答案 1 :(得分:-1)

你可以尝试这个我认为:
不确定只是尝试一下:

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