我的SQL DB中有許多表存儲基本KVP數據。它們都具有Id(int),Description(varchar(..))的模式。如何在匿名方法中將DBSet轉換爲接口 - E.F
我需要他們在我的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'.
有誰知道該怎麼辦 這個?
謝謝。