加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Azure 基础:自定义 Table storage 查询条件

发布时间:2020-12-15 08:16:17 所属栏目:安全 来源:网络整理
导读:MyLogEntity( pkey, .PartitionKey = .RowKey = } TableQuery query = TableQuery ,QueryComparisons.Equal, queryResult = logTable.ExecuteQuery(query); , , )); “abc” == “abc” startsWithCondition = ,QueryComparisons.GreaterThanOrEqual, "(RowK

MyLogEntity( pkey,.PartitionKey =.RowKey = }

TableQuery query = TableQuery,QueryComparisons.Equal, queryResult = logTable.ExecuteQuery(query);

,,));

“abc” == “abc” << “abca” << “abcz” < “abd”

startsWithCondition =,QueryComparisons.GreaterThanOrEqual,

"(RowKey ge ) and (RowKey lt )"

startStr = endIndex = startStr.Length - = Char afterLastChar = ()(lastChar + endStr = startStr.Substring(,endIndex) + startsWithCondition =

filterCondition =,

(PartitionKey eq ) and ((RowKey ge ) and (RowKey lt ))

MyLogEntity( pkey,.PartitionKey =.RowKey =</span><span style="color: #0000ff"&gt;public</span> DateTime LogDate { <span style="color: #0000ff"&gt;get</span>; <span style="color: #0000ff"&gt;set</span><span style="color: #000000"&gt;; } </span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;string</span> LogMessage { <span style="color: #0000ff"&gt;get</span>; <span style="color: #0000ff"&gt;set</span><span style="color: #000000"&gt;; } </span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;string</span> ErrorType { <span style="color: #0000ff"&gt;get</span>; <span style="color: #0000ff"&gt;set</span><span style="color: #000000"&gt;; }

}<span style="color: #0000ff">public <span style="color: #0000ff">class StartsWithByRowKey : IQuery<CloudTable,List><span style="color: #000000">
{
<span style="color: #0000ff">private <span style="color: #0000ff">readonly <span style="color: #0000ff">string<span style="color: #000000"> partitionKey;
<span style="color: #0000ff">private <span style="color: #0000ff">readonly <span style="color: #0000ff">string<span style="color: #000000"> startsWithString;
<span style="color: #0000ff">internal StartsWithByRowKey(<span style="color: #0000ff">string<span style="color: #000000"> partitionKey,<span style="color: #0000ff">string<span style="color: #000000"> startsWithString)
{
<span style="color: #0000ff">this.partitionKey =<span style="color: #000000"> partitionKey;
<span style="color: #0000ff">this.startsWithString =<span style="color: #000000"> startsWithString;
}

</span><span style="color: #0000ff"&gt;public</span> List<MyLogEntity><span style="color: #000000"&gt; Execute(CloudTable coludTable)
{
    </span><span style="color: #0000ff"&gt;var</span> query = <span style="color: #0000ff"&gt;new</span> TableQuery<MyLogEntity><span style="color: #000000"&gt;();

    </span><span style="color: #0000ff"&gt;int</span> endIndex = startsWithString.Length - <span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;;
    Char lastChar </span>=<span style="color: #000000"&gt; startsWithString[endIndex];
    Char afterLastChar </span>= (<span style="color: #0000ff"&gt;char</span>)(lastChar + <span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;);
    </span><span style="color: #0000ff"&gt;string</span> endStr = startsWithString.Substring(<span style="color: #800080"&gt;0</span>,endIndex) +<span style="color: #000000"&gt; afterLastChar;

    </span><span style="color: #0000ff"&gt;string</span> startsWithCondition =<span style="color: #000000"&gt; TableQuery.CombineFilters(
         TableQuery.GenerateFilterCondition(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;RowKey</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,startsWithString),endStr)
    );

    </span><span style="color: #0000ff"&gt;string</span> filterCondition =<span style="color: #000000"&gt; TableQuery.CombineFilters(
         TableQuery.GenerateFilterCondition(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;PartitionKey</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,partitionKey),startsWithCondition
    );

    </span><span style="color: #0000ff"&gt;var</span> entities =<span style="color: #000000"&gt; coludTable.ExecuteQuery(query.Where(filterCondition));
    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; entities.ToList();
}

}

<span style="color: #0000ff">public <span style="color: #0000ff">interface IQuery<<span style="color: #0000ff">in TModel,<span style="color: #0000ff">out TResult><span style="color: #000000">
{
TResult Execute(TModel model);
}

StartsWithByRowKey myStartsWithQuery = StartsWithByRowKey(, result = myStartsWithQuery.Execute(logTable);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读