【问题标题】:model class attribute string length as nvarchar max模型类属性字符串长度为 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?

【问题讨论】:

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


    【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-04
        • 2011-01-21
        • 2022-11-24
        • 1970-01-01
        • 2015-10-28
        • 2013-11-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多