【发布时间】:2015-06-10 13:12:59
【问题描述】:
是 MVC 的新手,几乎可以通过应用程序向后工作。我有一个实体 ItemType,它具有 ItemIndicator 类的外键。基本上,我正在创建一个包含 ItemType.code 和 ItemIndicator.description 的可编辑网格。当用户单击网格时,ItemIndicator 字段显示可能的 ItemIndicator.descriptions 的 dropDownList。在我的存储库中,我们有一个任务,它返回如下类型的异步任务:
public async Task<PagedResults<ItemType>> GetAsync(int indId, int skip = 0, int take = -1)
{
PagedResults<ItemType> pagedResults;
try
{
IQueryable<ChargeType> query = _dbSet.Include("IndicatorDetails");
query = take == -1
? query.OrderBy(i => i.IndicatorDetails.Code)
: query.OrderBy(i => i.IndicatorDetails.Code);
var data = await query.ToListAsync();
pagedResults = new PagedResults<ItemType>(data, skip, take, data.Count);
}
catch (Exception e)
{
throw new Exception(string.Format("Could not get charge types from database. {0}", e.Message), e);
}
return pagedResults;
}
它有效,而且我实际上理解它。这个想法是包括指标详细信息,其中包括我需要的指标描述。我的问题是第二个任务:
public async Task<ItemType> GetByIdAsync(int id)
{
return await _dbSet.FirstOrDefaultAsync(i => i.Id == id);
}
所以第一个任务返回所有项目类型,以及相关的描述信息。我需要做的第二个任务几乎是同一件事,我只需要一个 ItemType 及其相关的描述信息。由于我不期望超过一个结果,应该只返回一行,我对如何在传入 id 时重新编写表达式以返回 ItemDescription 感到困惑。我知道它在 PagedResults 任务中有效,因为它是 IQueryable 类型的,只是不确定如何对单行执行此操作。
抱歉,如果这看起来有点分散,请立即学习整个框架。提前致谢。
【问题讨论】:
标签: c# asp.net-mvc entity-framework