0

を使用して、有効な操作エラーではありません。 ListAllTeams_Resultは、Entity Frameworkで作成された複合型オブジェクトです。私は、インポート機能GetAllTeams()をループして複合型を投入しています。データアクセス層は、データリーダーが閉じているとき、「読み取り」を呼び出すと、私は、ストアドプロシージャを使用してEntity Frameworkのデータベース-最初のアプローチを使用して、テーブルから情報を取得するWeb APIを作成していEntity Frameworkのデータベースの最初のアプローチ

にアクセスしようとしたとき、私は私のビジネス層でのエラーを取得しています、私は取得していますエラーは、クエリの結果が以上に列挙することはできません

var team = _teamRepository.GetAllTeams(); 

次のコードであります一度。

注:このエラーは、内部スタックであり、データリーダーが閉じているとき、「読み取り」に電話

foreach (var t in team) 

を実行するから、アプリケーションを停止しない有効な操作ではありません。

注:問題が何であるか、私を発見した

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 
         }); 
    } 
} 
+0

私が使用ブロックをコメントアウトすると、それは動作しますが、それは私が開いている接続を持っていることを意味しません。これをどうやって処理するのですか? – Tom

答えて

0

:これは、実行

ビジネスレイヤ

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層を停止します。私は返信で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(); 
     } 
関連する問題