1 回答

TA貢獻1788條經驗 獲得超4個贊
您提供的代碼正在嵌套DbSet.
您所展示的內容正在解決T此問題:
context.Set<DbSet<BedType>>();
您T需要是一個普通的實體類。刪除DbSet該方法的通用約束GetLookup并添加一個class。
public List<LookupModel> GetLookupList<T>() where T : class
{
try
{
using (var context = new TwoCEntities())
{
var rows = context.Set<T>();
return rows.Select(row => new LookupModel
{
Id = (int)row.GetType().GetProperty("Id").GetValue(row, null),
Description = row.GetType().GetProperty("Description").GetValue(row, null).ToString()
}).ToList();
}
}
catch (Exception e)
{
if (log.IsErrorEnabled) log.ErrorFormat("GetLookupList<{0}> raised exception {1} with message {2}", typeof(T), e.GetType(), e.Message);
throw;
}
}
這將使您的類型變量T解析為方法中的以下內容。
context.Set<BedType>();
當你調用它時,請像這樣使用它:
var result = lookupRepository.GetLookupList<BedType>();
- 1 回答
- 0 關注
- 135 瀏覽
添加回答
舉報