안녕하세요. 제목과 같이
EntityFramework와 Linq 에서 select 시, Model 객체로 받아 저장하고자 합니다.
현재 C# 언어로 WPF 프로젝트를 만들어서
닷넷 프레임워크 4.8.1 + SQLite + EntityFramework 6.4.4 + Linq 기반으로 개발 진행중입니다.
EntityFramework 사용을 위해 테이블 스키마대로 Model 생성을 했습니다.
이 Model에 각 컬럼의 프로퍼티들이 있기에, 해당 Model 들을 몇몇 이유로 활용할겸 select 후에 Model 로 저장해서 받아오고자 했습니다.
하지만 그 방법을 몰라 문의 드립니다.
여러가지 서치를 통해서 방법을 확인해 보았습니다.
방법1) select 한 이후 리스트에 담긴걸 다시한번 select 하여 Model 에 저장.
아래와 같은 방법으로는 가능하나, 두번 select 하는 과정이 있어 비 효율적입니다.
var patternList = _dbContext.MST_REF_COMMAND
.Where(mrc => mrc.Log_file_seq == 18
&& mrc.Sanitizing_target == 2
&& mrc.Del_flg == “N”)
.Select(mrc => new // 익명 형식 사용
{
Seq = mrc.Seq,
…
})
.ToList()
.Select(x => new MstRefCommandModel
{
Seq = x.Seq,
})
.ToList();
**방법2) Runtime 시 **
System.NotSupportedException: The entity or complex type ‘LogSanitizer.Common.Database.MST_REF_COMMAND’ cannot be constructed in a LINQ to Entities query.
에러가 발생
var patternList = _dbContext.MST_REF_COMMAND
.Where(mrc => mrc.Log_file_seq == 18
&& mrc.Sanitizing_target == 2
&& mrc.Del_flg == “N”)
.Select(mrc => new MstRefCommandModel
{
Seq = mrc.Seq,
// 나머지 필드들을 필요에 따라 추가
})
.ToList();
select 시 테이블 스키마대로 Model에 담아서 리스트형으로 반환하고 싶은데요.
혹시 방법을 알고 계시면 공유좀 부탁드립니다.
감사합니다.