기본적으로 최대 길이가 명시 적으로 지정되지 않은 엔터티 모델의 문자열 속성은 데이터베이스에서 nvarchar(max)
으로 설정됩니다. 이 규칙을 무시하고 문자열에 최대 길이가 nvarchar(100)
인 경우 명시 적으로 다르게 설정하지 않은 경우 문자열을 제공하고자합니다.Entity Framework 6에서 문자열 속성의 기본 최대 길이를 어떻게 변경합니까?
나는 설명과 문서를 통해 내가 찾고있는 것으로 보이는 기본 제공 규칙 인 PropertyMaxLengthConvention
을 발견했습니다. 그러나, 그것도 작동하지 않거나 내가 잘못 사용하고 있거나 그냥 내가 생각하는대로하지 않습니다.
나는 단순히 규칙을 추가하는 시도했습니다
다음modelBuilder.Conventions.Add(new PropertyMaxLengthConvention(100));
나는 어쩌면 디폴트가 이미 사용하고있는 생각, 그래서 내가 먼저 제거 시도 :
modelBuilder.Conventions.Remove<PropertyMaxLengthConvention>();
modelBuilder.Conventions.Add(new PropertyMaxLengthConvention(100));
심지어 명시 적으로 시도 기본 전후에 규칙을 추가하십시오.
modelBuilder.Conventions.AddBefore<PropertyMaxLengthConvention>(new PropertyMaxLengthConvention(100));
modelBuilder.Conventions.AddAfter<PropertyMaxLengthConvention>(new PropertyMaxLengthConvention(100));
기쁨. 마이그레이션을 추가하면 열은 여전히 nvarchar(max)
으로 생성됩니다.
내가 원하는 것을하기 위해 그 대회를 사용할 방법이 있습니까? 그렇지 않다면 기본 문자열 속성이 nvarchar(100)
인 사용자 정의 규칙을 작성할 수 있지만 maxlength를 포함하여 다른 값으로 명시 적으로 설정할 수 있습니까?