ITruncateColumnValuesTEntity Interface

表示要截断用户输入的实体。

Definition

Namespace: QuickAdmin.EntityBase
Assembly: QuickAdmin.Net (in QuickAdmin.Net.dll) Version: 1.0.122
C#
public interface ITruncateColumnValues<TEntity>
where TEntity : IEntity

Type Parameters

TEntity
实体类型。

Remarks

当用户输入的值超过对应数据库字段定义的范围时,进行插入/更新操作会引发异常, 例如某字符串字段定义最大长度为 30 字符,当用户输入的长度大于 30 时将无法插入/更新。 如果用户输入的多余部分是可以舍弃的,可在实体类继承此接口并实现 TruncateColumnValues 方法, 在该方法里将可以舍弃的用户输入截掉。
当前本类库里对 TruncateColumnValues 方法的调用位于通用 CRUD 服务泛型基类的 ValidateInput 方法中。

Example

若对下边定义的 MyEntity 使用了通用 CRUD 服务,TruncateColumnValues 将会执行在添加/修改操作时被自动调用(在基类 ValidateInput 方法中)。
C#
[Table(Name = "test_my_entity")]
public class MyEntity : EntityWithAutoIdKey, ICRUDEntity, ITruncateColumnValues<MyEntity>
{
    [Column(StringLength = 30)]
    [Display(Name = "名称")]
    public string Name { get; set; }

    [Column(StringLength = 200)]
    [Display(Name = "备注")]
    public string Remarks { get; set; }

    public MyEntity TruncateColumnValues(FreeSql.DataType dbType)
    {
        // 假设备注字段超长时可截断,则在长度超过定义的长度 200 时,取其子串(使用了本类库提供的扩展方法):
        Remarks = Remarks.MaxSubstring(200); // 若 200 是指字符长度,可用此扩展方法
        Remarks = Remarks.MaxSubstringByByteLength(200); // 若 200 是指字节长度,可用此扩展方法
        return this;
    }
}

Methods

TruncateColumnValues 按需截断各个字段值。

See Also