0

OK、私は非常に新しいジェネリックであり、C# の多くの高レベル機能を使用しているため、この質問は私にとっても説明が難しいです。その型の新しいオブジェクトをインスタンス化し、型情報を使用して Entity Framework 5.0 dbContext の正しいクラスにアクセスするために使用されるジェネリック型を使用してメソッドを作成しようとしています。私が持っているものはコンパイルされませんが、コードが私の問題をよりよく説明すると信じています.

コード

public void AddNewRecord<T>() where T : new()  
{    
    T record = new T();  
    _Context.T.Add(record);  //HERE IS MY PROBLEM T would normally be tbl_x
    _BindSource.DataSource = _Context.T.Local.ToBindingList(); //Same goes for here  
}

T を使用して dbcntext 内のクラスにアクセスするにはどうすればよいですか?
これが可能かどうかさえわかりません。皆さん/ギャルが提供できる助けに感謝します。

4

2 に答える 2

4

あなたはこれをしたい:

_Context.Set<T>().Add(record);
_BindingSource.DataSource = _Context.Set<T>().Local.ToBindingList();

あなたのコンテキストはクラスメンバーであることに気付きました。このように DbContext を使用する場合は十分に注意してください。DbContext は短命になるように設計されており、プログラムの存続期間中維持すると、ますます遅くなり、あきらめることなくより多くのメモリを使用します。

DbContext は、比較的迅速に破棄されることが予想されるため、実際のメモリ管理やキャッシュのプルーニングを行いません。

于 2013-05-19T02:39:27.167 に答える
0

これはあなたが求めているものです:

_Context.Set<T>().Add(record);

私の完全な例については、こちらをご覧ください https://github.com/lukemcgregor/StaticVoid.Repository/blob/master/StaticVoid.Repository.EntityFramework/DbContextRepositoryDataSource.cs

于 2013-05-19T02:39:45.527 に答える