示例#1
0
        /// <summary>
        /// Check data
        /// </summary>
        /// <param name="command">Cache action command</param>
        /// <returns>Return determine data whether is exist</returns>
        public async Task <bool> ExistAsync <T>(ExistDataCacheCommand <T> command) where T : BaseEntity <T>, new()
        {
            if (command == null)
            {
                return(false);
            }
            Type   dataType = typeof(T);
            IQuery checkQuery;

            if (command.Query != null)
            {
                var primaryKeys = EntityManager.GetPrimaryKeys(dataType);
                checkQuery = command.Query.LightClone();
                checkQuery.ClearOrder();
                checkQuery.ClearQueryFields();
                checkQuery.ClearNotQueryFields();
                checkQuery.AddQueryFields(primaryKeys.ToArray());
            }
            else
            {
                checkQuery = QueryManager.Create <T>();
            }
            checkQuery.QuerySize = 1;
            var data = await GetAsync(new GetDataCacheCommand <T>()
            {
                GetDatabaseDataProxyAsync = command.GetDatabaseDataProxyAsync,
                Query = checkQuery
            }).ConfigureAwait(false);

            return(data != null);
        }
示例#2
0
 /// <summary>
 /// Check data
 /// </summary>
 /// <param name="command">Cache action command</param>
 /// <returns>Return determine data whether is exist</returns>
 public bool Exist <T>(ExistDataCacheCommand <T> command) where T : BaseEntity <T>, new()
 {
     return(ExistAsync(command).Result);
 }