我正在创建一个Web API,该Web API将使用Entity Framework数据库 - 第一方法使用存储过程从表中获取信息。ListAllTeams_Result
是在实体框架中创建的复杂类型对象。我正在循环浏览导入函数GetAllTeams()
并填充复杂类型。试图访问数据访问层
我遇到的错误是以下代码
var team = _teamRepository.GetAllTeams();
查询的结果不能超过一次。
注意:此错误在内部堆栈中,并且不会阻止应用程序执行
foreach (var t in team)
当数据读取器关闭时调用"读取"不是有效的操作。
注意:这停止执行
业务层
public IEnumerable<TeamDto> GetTeam()
{
var team = _teamRepository.GetAllTeams();
if (team != null)
{
foreach (var t in team.ToList())
{
yield return Mapper.Map<TeamDto>(t);
}
}
yield break;
}
dataAccess层:
public IEnumerable<ListAllTeams_Result> GetAllTeams()
{
using (var mcrContext = new MCREntities())
{
return (from team in mcrContext.ListAllTeams("")
select new ListAllTeams_Result
{
TeamID = team.TeamID,
TeamDescription = team.TeamDescription,
CountryCode = team.CountryCode,
CreatedBy = team.CreatedBy,
CreatedDate = team.CreatedDate,
ModifiedBy = team.ModifiedBy,
ModifiedDate = team.ModifiedDate
});
}
}
我找到了问题所在。我不得不在返回中添加tolist
using (var mcrContext = new MCREntities())
{
return (from team in mcrContext.ListAllTeams("")
select new ListAllTeams_Result
{
TeamID = team.TeamID,
TeamName = team.TeamName,
TeamDescription = team.TeamDescription,
CountryCode = team.CountryCode,
CreatedBy = team.CreatedBy,
CreatedDate = team.CreatedDate,
ModifiedBy = team.ModifiedBy,
ModifiedDate = team.ModifiedDate
}).ToList();
}