我的 SQL 数据库中有许多存储基本 KVP 数据的表。它们都有 Id(int)、Description(varchar(..)) 的模式。
我在我的 MVC 应用程序中的一个或另一个阶段都需要它们,我正在尝试创建一个匿名方法,该方法将采用实体类的类型并返回该项目数据的列表。我希望能够将此方法用于我的数据库中的任意数量的表,而不必过多地扩展我正在编写的方法。
示例数据:
- 编号:1,描述:红色
- 编号:2,描述:蓝色
- 编号: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'.
有谁知道如何做到这一点?
谢谢。