私はEntity FrameworkとLINQを使用しています。私は、GridViewの "ヘルパー"クラスで再利用可能なメソッドを作成したいと思います。スイッチを使用せずにGetType()から派生した型を使用します。
このメソッドは、渡されたエンティティのタイプに基づいてエンティティのリストとしてDataSourceを返します。私は、私は提案を開いています方法で文字列としてしたいエンティティ型を渡す必要がある場合は
GridView1.DataSource = helperClass.GetDataSource(new Entity1());
注*:呼び出しは次のようになりますので
のでGridView1はの[Entity1]が表示されます。私はこの方法が
を返すことができ、再利用可能な方法は簡単であるとのようになります〜40のエンティティタイプ間のスイッチケースを使用する必要がありますする必要はありません:
public static object GetDataSource(object type)
{
using (DatabaseContext dc = new DatabaseContext())
{
if (dc.[how do I get the entity type here].Count() > 0)
{
var modelList = dc.[how do I get the entity type here also].ToList();
}
}
}
これは愚かな音が鳴ります、しかし明らかに私はできませんでした:
var modelList = dc.(type.GetType()).ToList();
しかし、それは私が達成したいものです。
何が良いこと、あなたのですか?あなたはオブジェクトのリストを取得しますが、コンパイル時にその型を知らないのですか?私はジェネリック医薬品であなたが望むことをする良い方法があると思う。 –
これは、https://stackoverflow.com/questions/1919632と重複していますが、最初にタイプから名前を取得する必要があるという違いがあります。 –
@DStanley非常に良いかもしれません。これは、再利用可能なヘルパーメソッドを作成しようとしたときに考えた最初のアプローチに過ぎませんでした。私は類似したメソッド(ソート、バインド、データバインドなど)を持つ複数のGridViewを持つWebアプリケーションを持っているので、同じコードをタイプするのではなく、これらのメソッドのリモートクラスで再利用可能なメソッドを作成したいGridView)〜40 times – toadfromgrove