2017년 6월 14일 수요일

C#, MVC : EntityFramework(DBContext) 로 테이블 생성시 텍스트 필드 크기 지정하기


DbContext 로 데이터를 관리 할때, 일반적으로 텍스트 필드는 그냥 string 형식으로 지정하고 만든다. 그런데 이렇게 테이블을 생성하면...


이렇게 테이블의 컬럼 크기가 최대치로 잡혀 버린다.

varchar 특성상 최대 크기로 잡힌다고 딱히 문제가 있는것은 아니다. 하지만, 역시 무작정 최대 크기로 잡히는 것은 좀 맘에 안들기도 하고, 특히나 만약 저 텍스트 필드에 인덱스를 걸어야 할 일이 있을 경우 문제가 된다. (인덱스를 걸수 있는 필드 크기 최대치가 900 바이트 이기 때문. 크기가 varchar(900) 이상인 컬럼에는 인덱스를 걸수 없다.)

참고 : 테이블 '***' 에 있는 열 '***' 의 유형이 인덱스에서 키 열로 사용하기에 적합하지 않습니다

그렇다면 컬럼 크기를 지정하려면 어떻게 하면 될까?

간단히 "MaxLength" 속성을 지정해 주면 된다.
저렇게 MaxLength(128) 이렇게 지정해 주면...


컬럼 크기가 딱 저정도인 칼럼을 생성해 준다.