ASP.NET 4.5 + EntityFramework 조합으로 사용 중에 DB 스키마 변경 없이 DB만 Mssql -> Mysql 으로 변경하던 중 발생한 에러입니다.
1. 이 함수는 네 맘대로 쓸 수 없다.
Error : 이 메서드는 LINQ to Entities 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.
Solution : Enumerable.AsQueryable() 제거해줌, 아예 못쓰는건 아닌데 없어도 큰 문제는 없어서 일단 제거, 나중에 필요할 때 찾아보기로
2. DB 연결을 닫지 않고 계속 열기만 하면 나중에 후회하게 될거야
Error : Entity Framework: There is already an open DataReader associated with this Command which must be closed first
Solution : 소스코드나 쿼리문 안에서 내부적으로 db를 두번 호출하는 것 같음. 혹은 ToList()를 하는지 확인하기. 이번에는 join 후 from 하도록 수정, 아래 참조
//before [ERROR!]
from program in v_ProgramInfoRepository.Entities
.Select(p => new { p.ProgramID, p.Title } )
.Where(p => vod.ProgramId == p.ProgramID).DefaultIfEmpty()
// after [Pass]
join program in v_ProgramInfoRepository.Entities
.Select(p => new { p.ProgramID, p.Title })
on vod.ProgramId equals program.ProgramID into lj_program
from program in lj_program.DefaultIfEmpty()
'컴퓨터 > C#' 카테고리의 다른 글
[Error] .NET SQL Client Connection 관련 예외 (0) | 2019.12.02 |
---|---|
[VS] 설치 패키지의 바로가기 아이콘 변경 방법 (1) | 2017.01.04 |
[VS] VisualStudio C# Interactive 초 간단 사용법 (0) | 2016.11.10 |
[C#/ PostgreSQL] AWS RDS(PostgreSQL) 접속하기 및 쿼리 (0) | 2016.06.30 |
[C#/ PostgreSQL] C#에서 Npgsql TimestampTZ 쿼리 (0) | 2016.06.30 |