개발꿈나무
[ASP.NET] InvalidCastException: 열에 널 데이터가 있습니다. 본문
반응형
public async Task<IActionResult> Errors()
{
var ErrorLists = from f in _context.W_ERRORS select f;
return View(await ErrorLists.ToListAsync());
}
위 소스코드에서 ErrorLists를 view로 넘겨줄 때 다음과 같은 InvaliidCastException: Column contains NULL values
(열에 널 데이터가 있습니다.)라는 오류가 발생했다.
_context.W_ERRORS는 총 5개의 컬럼으로 구성되어 있으며 날짜타입인 timestamp만 not null 컬럼이다.
public async Task<IActionResult> Errors()
{
var ErrorLists = from f in _context.W_ERRORS where f.DCT_NO != null select f;
return View(await ErrorLists.ToListAsync());
}
혼자 삽질을 하다가 DCT_NO(첫번째 컬럼) != null이라는 조건을 추가해주었는데 DCT_NO이 null이 아닌 행들이 제대로 출력되는 것을 볼 수 있었다.
첫번째 컬럼이 null이면 데이터를 가져올 수 없는 건가라는 혼자만의 소설을 써내려가다
DBContext를 정의해놓은 파일에서 다음과 같은 코드를 보았다.
modelBuilder.Entity<W_ERROR>()
.HasKey( w => new { w.DCN_NO, w.W_TIMESTAMP } );
DCN_NO은 NULL 허용 컬럼으로 NULL 데이터가 들어있는데 model을 정의하면서 key로 설정해놓은 것이 문제였다.
key를 timestamp 하나로 정의하고 원래의 소스코드로 실행하니 제대로 실행되었다.
반응형
'C# > C#' 카테고리의 다른 글
[C#] 특정 날짜의 주 가져오기 (GetWeekOfYear) (0) | 2022.01.19 |
---|---|
[C# 교과서] 11. C# 활용(5) - 제네릭 사용하기 (0) | 2022.01.18 |
XML data 읽어 xml 형식으로 뿌리기 (0) | 2021.10.18 |
[ASP.NET] MODEL에 여러 스키마의 DB 테이블 추가하기 (0) | 2021.09.16 |
[ASP.Net] Mornitoring Tool (0) | 2021.09.08 |
Comments