模型类属性字符串长度为 nvarchar max
Posted
技术标签:
【中文标题】模型类属性字符串长度为 nvarchar max【英文标题】:model class attribute string length as nvarchar max 【发布时间】:2021-03-08 00:23:00 【问题描述】:如何在模型类属性中分配 ms sql server 数据类型nvarchar max
长度。
假设我有一个属性,StudentName
[Required]
[MinLength(5)]
[MaxLength(200)]
public string StudentName get; set;
如何将 StudentName 数据类型设为 nvarchar max?
【问题讨论】:
【参考方案1】:有一个Column()
属性,您可以使用它来指定确切的SQL Server 数据类型。例如:
[MaxLength(200)]
[Column(TypeName="nvarchar(max)")]
public string StudentName get; set;
注意:
MaxLength
属性将被Column
属性覆盖,但在模型绑定中,StudentName
将通过其MaxLength
属性进行验证。
如果您愿意,您可以通过以下方式使用 Fluent API 实现此目的:
builder.Property(x => x.StudentName)
.HasMaxLength(200)
.HasColumnType("nvarchar(max)")
.IsRequired();
顺便说一句,用MaxLength
过滤用户输入是不切实际的,但在数据库中设置字段类型nvarchar(max)
。
【讨论】:
【参考方案2】:如果您不想限制字符串MaxLength (200)
的值,为什么要使用MaxLength
?您只需删除MaxLength(200)
即可将您的模型更改为nvarchar max
。
如果您只想在控制器和视图上使用 200 个字符的限制,最好使用ViewModel
。
【讨论】:
以上是关于模型类属性字符串长度为 nvarchar max的主要内容,如果未能解决你的问题,请参考以下文章