4

, 나는이 작업을 수행 할 수 있습니다 : EF 코어에서 고정 길이 열을 어떻게 구성합니까? 이전 EF에서

Foo = c.String(nullable: false, maxLength: 10, fixedLength: true) 

같은 뭔가 마이그레이션을 생성 할

entityTypeBuilder 
    .Property(b => b.Foo) 
    .IsRequired() 
    .HasMaxLength(10) 
    .IsFixedLength(); 

그러나 EF 코어에 더 IsFixedLength() 없다.

다른 방법이 있습니까? 당신은 단지 열이 직접 입력 지정할 수 있습니다

답변

8

현재 (EF 코어 1.1.0) : .HasColumnType("char(123)")

당신의 DB 엔진이 값을 이해하도록하십시오! 그것은 "있는 그대로"전달됩니다.

.HasMaxLength() 값이 무시되므로 여기에 필요한 모든 치수/길이/정밀도 값을 써야합니다.

+1

그건 유감이지만 EF 코어는 "완전하지 않은 것"입니다. 또한, [문서]에 따르면 (http://docs.microsoft.com/en-us/ef/core/modeling/max-length) 최대 길이가 있습니다 ... – grokky

+0

EF 코어 E6에 대한 전체 대체되지 않습니다 , 많은 github (https://github.com/aspnet/EntityFramework/issues)에 문제가 있습니다. 임시 해결책으로'HasColumnType ($ "char ({length})")를 호출하고이 모든 마술 문자열을 한 곳에서 제어하는 ​​확장 메서드 ('IsFixedLength (length)')를 만들 수 있습니다. – Dmitry

+1

'HasMaxLength'에 대해서 - 네, 존재하고 잘 작동합니다. 그러나 당신이'HasColumnType ("char (123)")과'HasMaxLength (100)'을 같은 속성/컬럼에 적용한다면 - 123 "wins". – Dmitry