2017-12-15 40 views
0

API 애플리케이션을 ASP.Net Core 2.0 및 EF Core로 업데이트했습니다.코어 2.0으로 업데이트 한 후 Linq 쿼리의 열 sqlException이 올바르지 않습니다.

전에 제대로 작동하는 데 사용되는 다음 쿼리 : 내가 GrouBy

IList<myDTO> allRecords = _context.myModel        
           .Select(item => new myDTO() 
           { 
            recordId = item.myId,         
            recordName = item.myName         
           })                
           .Skip(limit * (page - 1)) 
           .Take(limit) 
           .ToList(); 

또는 recordName 필드를 제거하면 나는 항상

System.Data.SqlClient.SqlException: 'Invalid column name 'recordName '.' 

을 얻을 업데이트 후

IList<myDTO> allRecords = _context.myModel        
           .Select(item => new myDTO() 
           { 
            recordId = item.myId,         
            recordName = item.myName         
           }) 
           .OrderBy(o=>o.recordName)         
           .Skip(limit * (page - 1)) 
           .Take(limit) 
           .ToList(); 

public class myModel 
    {  
     [Key]  
     public int myId { get; set; }  
     public string myName { get; set; }  
    } 

public class myDTO 
    {  
     public int recordId { get; set; }  
     public string recordName { get; set; }  
    } 

IList<myDTO> allRecords = _context.myModel        
           .Select(item => new myDTO() 
           { 
            recordId = item.myId    
           }) 
           .OrderBy(o=>o.recordName)         
           .Skip(limit * (page - 1)) 
           .Take(limit) 
           .ToList(); 

또는 건너 뛰기

IList<myDTO> allRecords = _context.myModel        
            .Select(item => new myDTO() 
            { 
             recordId = item.myId,         
             recordName = item.myName         
            }) 
            .OrderBy(o=>o.recordName) 
            .Take(limit) 
            .ToList(); 

,

내 이동 후 이러한 오류가 왜 어떤 조언이겠습니까 ... 그것을 잘 작동하지만 내 recordName 필드를 필요로하고 생략 및 정렬 Core 2.0에? LINQ 쿼리는 완벽하게 잘 될 것 같다

실뱅

+0

원래 쿼리에서 GroupBy는 어디에 있습니까? 아니면 OrderBy를 제거했다는 뜻입니까? – NullReference

+0

왜? 보통 회귀 버그라고합니다. 이와 같은 것을 얻을 때마다 문제 추적기에서 확인/게시하십시오. –

+0

감사합니다. Githuib의 EFCore 팀을 확인했는데 다음 2.1.0 버전에서 해결되어야하는 알려진 문제가 될 수 있습니다. https://github.com/aspnet/EntityFrameworkCore/issues/10570 – sylvain77

답변

0

당신은 당신의 테이블 필드 myName 처음에 OrderBy를 사용하여 시도하고 select을 할 수 있습니다.

IList<myDTO> allRecords = _context.myModel 
           .OrderBy(o => o.myName)        
           .Select(item => new myDTO() 
           { 
            recordId = item.myId,         
            recordName = item.myName         
           })                
           .Skip(limit * (page - 1)) 
           .Take(limit) 
           .ToList(); 

이 방법이 효과가 있는지 확인하십시오.

+0

감사합니다. , 나는 또한이 선택권을 시도하고 그러나 정확하게 동일한 문제점을 얻는다 – sylvain77