指定max length属性以匹配varchar(max)

时间:2016-10-31 20:34:00

标签: c# asp.net-mvc entity-framework

我有一个这样的模型:

public int Id { get; set; }

[Required]
[StringLength(50, MinimumLength = 3)]
public string Title { get; set; }

[Required]
[StringLength(50, MinimumLength = 3)]
public string Slug { get; set; }

[Required]
[StringLength(100, MinimumLength = 3)]
public string Body { get; set; }

正如您在Body中看到的那样,我将限制设置为100,但在数据库中,此列为varchar(max)。我可以提供什么样的长度来匹配专栏varchar(max)

3 个答案:

答案 0 :(得分:8)

您有两种选择:

(1)使用int.MaxLength作为maximumLength构造函数的StringLengthAttribute参数:

[Required]
[StringLength(int.MaxValue, MinimumLength = 3)]
public string Body { get; set; }

(2)另外用MaxLengthAttribute w / o参数装饰属性(StringLengthAttribute的值将被忽略):

[Required]
[StringLength(100, MinimumLength = 3)]
[MaxLength]
public string Body { get; set; }

答案 1 :(得分:2)

您可以使用DataAnnotations.Schema。我正在使用以下varchar(max)

[Column(TypeName =“varchar(MAX)”)] [的MaxLength]

答案 2 :(得分:1)

VARCHAR(MAX)是unicode check here中的2^31-3个字符。

所以你可以把这个号码。但不知道为什么你需要这个=):

[StringLength(2147483645, MinimumLength = 3)]