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

これがデータグリッドビューであることを表示するには、次の式を使用します。

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

問題は、EFがextradataをtype1のextradata、type2のextradata1としてテーブルに入れることです。グリッドビューにエクストラデータを追加したいとき

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

type2 にはそのような列が含まれていないため、nullreferenceException が発生します。エンティティをあまり変更せずに、データグリッドビューに列を表示するにはどうすればよいですか?

4

2 に答える 2

1

DataTableこの目的に使用できます

リストから作成し、DataTable必要に応じて列を追加し、バインドDataTable しますDataGridView

あなたは終わった。

于 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 に答える