ITruncateColumnValuesTEntity Interface
表示要截断用户输入的实体。
Namespace: QuickAdmin.EntityBaseAssembly: QuickAdmin.Net (in QuickAdmin.Net.dll) Version: 1.0.122
public interface ITruncateColumnValues<TEntity>
where TEntity : IEntity
Type Parameters
- TEntity
- 实体类型。
当用户输入的值超过对应数据库字段定义的范围时,进行插入/更新操作会引发异常,
例如某字符串字段定义最大长度为 30 字符,当用户输入的长度大于 30 时将无法插入/更新。
如果用户输入的多余部分是可以舍弃的,可在实体类继承此接口并实现 TruncateColumnValues 方法,
在该方法里将可以舍弃的用户输入截掉。
当前本类库里对 TruncateColumnValues 方法的调用位于通用 CRUD 服务泛型基类的 ValidateInput 方法中。
若对下边定义的
MyEntity 使用了通用 CRUD 服务,
TruncateColumnValues 将会执行在添加/修改操作时被自动调用(在基类
ValidateInput 方法中)。
[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;
}
}