0

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

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 将额外数据作为 type1 的 extradata 和 type2 的 extradata1 放入表中。当我想将我的额外数据添加到我的 gridview 时

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

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

4

2 回答 2

1

您可以DataTable用于此目的

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

你完成了。

于 2013-07-21T13:27:51.150 回答
-1

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

var results =db.producten.Where(c => c is type1|| c is type2).ToList();
于 2013-07-21T09:41:58.933 回答