가능한 중복 :내 Linq 문에서 "이 명령과 관련된 열려있는 DataReader가 먼저 닫아야합니다"문제를 해결하는 방법은 무엇입니까?
public class VwSelectBrochures { public List<SelectBrochure> SelectBrochures { get; set; } } public class SelectBrochure { public int BrochureId { get; set; } public string UrlImage { get; set; } public string Description { get; set; } public string Cat1Description { get; set; } public string Cat2Description { get; set; } public string Cat3Description { get; set; } public List<LangSelection> Languages { get; set; } } public class LangSelection { public int Id { get; set; } public string Description { get; set; } public bool Vink { get; set; } }
및 코드 줄 :
var dbmodel2 = from x in brochures.AsEnumerable().Select( x => new SelectBrochure {BrochureId = x.Id, Description = x.Description, UrlImage = x.UrlImage, Languages = new List<LangSelection>(from y in x.BrochureLanguages select new LangSelection(){Description = y.Language.Description, Id = y.Language.Id})}) select x;
브로
Entity Framework: There is already an open DataReader associated with this Command
나는이 수업을 chure 및 BrochureLanguages는 db-models입니다.
"y에서 x.BrochureLanguages"를 수행 할 수 없기 때문에 오류가 발생하지만이 문제를 해결할 수있는 방법이 없습니다.
내가 정말로 원하는 것은 모든 소책자를 VwSelectBrochures 클래스에 넣는 것이다.
이 문장 앞에 List을 선언하고 작성한 다음 ToList()를 실행하면 각 새 SelectBrochure에 대해 해당 목록의 ToList()가 실행됩니다. ** 그 문제에 대해서는 위의 배열로 선언하고 모든 새로운 객체에 대해 배열에 .ToList()를 발행하면됩니다. –