1

同じ構造のテーブルが3つあります。私はエンティティフレームワークを使用しています。その3つのクラスタイプのみを受け入れるジェネリック関数を作成したいと思います。しかし、typeパラメーターに複数のtypeを指定することはできませんでした。方法はありますか?または、基本クラスのみを追加したいのですが、エンティティから生成されるため、基本クラスを作成するにはどうすればよいですか?

4

1 に答える 1

5

最も簡単な方法は、おそらく基本クラスを使用せずに、インターフェースを使用することです。共通のプロパティがであると仮定しましょうstring Name、そしてあなたはすることができます

interface IEntityWithName
{
    string Name { get; set; }
}

// make sure this is in the same namespace and has the same name as the generated class
partial class YourEntity1 : IEntityWithName
{
}

// ditto
partial class YourEntity2 : IEntityWithName
{
}

public void DoSomething<T>(T entity)
    // if you have no common base class
    where entity : class, IEntityWithName
    // or if you do have a common base class
    where entity : EntityObject, IEntityWithName
{
    MessageBox.Show(entity.Name);
}

正確に何が可能かは、エンティティクラスがどのように生成されるか、およびプロシージャで何をしたいかによって異なります。これを自分の状況に適応させる方法がわからない場合は、自分がやろうとしていることについてさらに情報を提供できますか?

于 2012-07-24T10:16:47.833 に答える