동작 [MaxLength]
과 [StringLength]
속성 의 차이점은 무엇입니까 ?
내가 알 [MaxLength]
수있는 한 (배열의 최대 길이를 확인할 수 있는 예외는 있지만) 이것들은 동일하고 다소 중복됩니까?
답변
맥스 길이 는 Entity Framework에서 데이터베이스를 만들 때 문자열 값 필드를 얼마나 크게 만들지 결정하는 데 사용됩니다.
MSDN에서 :
속성에 허용되는 배열 또는 문자열 데이터의 최대 길이를 지정합니다.
끈 길이 는 사용자 입력의 유효성을 검사하는 데 사용되는 데이터 주석입니다.
MSDN에서 :
데이터 필드에 허용되는 최소 및 최대 문자 길이를 지정합니다.
답변
방금 다른 게시물에서 배웠지 만 매우 유용한 추가 정보가 있지만 설명서를 찾을 수없는 것 같습니다 (누군가 MSDN에서 링크를 공유 할 수 있다면 놀라 울 것입니다).
이러한 속성과 관련된 유효성 검사 메시지는 실제로 속성과 관련된 자리 표시자를 대체합니다. 예를 들면 다음과 같습니다.
[MaxLength(100, "{0} can have a max of {1} characters")]
public string Address { get; set; }
글자 수 한도를 초과하면 다음을 출력합니다 :
“주소는 최대 100 자까지 가능합니다”
내가 알고있는 자리 표시자는 다음과 같습니다.
- {0} = 속성 이름
- {1} = 최대 길이
- {2} = 최소 길이
처음에 이것을 지적한 bloudraak 에게 감사드립니다 .
답변
에 [MaxLength]
와 [StringLength]
속성을 모두 사용했을 때의 결과는 다음과 같습니다 EF code first
. 둘 다 사용 [MaxLength]
하면 레이스 에서 승리합니다. studentname
아래 클래스의 열에 있는 테스트 결과 참조
public class Student
{
public Student () {}
[Key]
[Column(Order=1)]
public int StudentKey { get; set; }
//[MaxLength(50),StringLength(60)] //studentname column will be nvarchar(50)
//[StringLength(60)] //studentname column will be nvarchar(60)
[MaxLength(50)] //studentname column will be nvarchar(50)
public string StudentName { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
}
답변
모든 좋은 답변 … 유효성 측면에서 MaxLength는 서버 측에서만 검증되고 StringLength는 클라이언트 측에서도 검증됩니다.
답변
MaxLengthAttribute는 Max를 의미합니다. 허용되는 배열 또는 문자열 데이터의 길이
StringLengthAttribute는 Min을 의미합니다. 그리고 최대. 데이터 필드에 허용되는 문자 길이
http://joeylicc.wordpress.com/2013/06/20/asp-net-mvc-model-validation-using-data-annotations/를 방문하십시오.
답변
아래주의 할 또 다른 점은에 최대 길이의 경우에만 제공 할 수있는 속성 최대 필요한 범위되지에게 분 필요한 범위를. StringLength에 있는 동안 둘 다 제공 할 수 있습니다 .
답변
내 컨텍스트에 아래 줄을 추가하여 해결했습니다.
modelBuilder.Entity<YourObject>().Property(e => e.YourColumn).HasMaxLength(4000);
어떻게 든 [MaxLength]
나를 위해 일 하지 않았다.
