在我的软件中,我制作了一些实体:
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中显示列,而不会过多地更改实体?
答案 0 :(得分:1)
您可以将DataTable
用于此目的
从列表中创建DataTable
,根据需要添加更多列,绑定DataTable
到DataGridView
你已经完成了。
答案 1 :(得分:-1)
你可以尝试这个我认为:
不确定只是尝试一下:
var results =db.producten.Where(c => c is type1|| c is type2).ToList();