背景
假设我有一个 Azure 表实体
class MyEntity : TableEntity
{
public string LongString { get; set; }
public bool IsCompressed { get; set; }
}
如果LongString
> 64KB(Azure 属性限制),我想保存LongString
压缩文件。为此,我有两个功能Compress(string)
和Decompress(string)
LongString
目前,在每次插入之前,我都会LongString = Compress(LongString)
检查IsCompressed = true
. 每次 Azure 获取操作后都相反。
我想从整个代码中隐藏压缩选项,并将压缩和解压缩自包含在MyEntity
类中。
问题
在从 azure table 获取和设置实体之前和之后是否可以选择进行自定义操作?就像是 ...
class MyEntity : TableEntity
{
public string LongString { get; set; }
public string IsCompressed { get; set; }
public override void BeforeInsert()
{
if (LongString.Length > 64KB)
{
LongString = Compress(LongString);
IsCompressed = true;
}
}
public override void AfterGet()
{
if (IsCompressed)
{
LongString = Decompress(LongString);
IsCompressed = false;
}
}
}