SQL DBには、基本的なKVPデータを格納するテーブルがいくつかあります。それらはすべてId(int)、Description(varchar(..))のパターンを持っています。
私はMVCアプリケーションのいずれかの段階でそれらすべてを必要とし、エンティティクラスのタイプを取得してそのアイテムデータのリストを返す匿名メソッドを作成しようとしています。私が書いているメソッドをあまり拡張することなく、データベース内の任意の数のテーブルにこのメソッドを使用できるようにしたいと思います。
データ例:
- ID:1、説明:赤
- ID:2、説明:青
- ID:3、説明:緑
ISetの実装:
public interface ISet
{
int Id { get; set; }
string Description { get; set; }
}
可能なメソッドの実装
public static IList<T> BuildSet<T>()
{
using (var db = new somethingEntities())
return db.Set(typeof(T)).Cast<ISet>().Select(c => new { c.Id, c.Description }).ToList();
}
使用法
var data = BuildSet<YourType>();
ランタイムエラー
Cannot create a DbSet<ISet> from a non-generic DbSet for objects of type 'YourType'.
誰かがこれを行う方法を知っていますか?
ありがとう。