public void FillEntitySync(EntityAttributeMapConfigurationDetail configurationDetail, DbDataReader reader, string prefix, ModelBase entity)
 {
     if (reader[string.Format("{0}{1}", prefix, configurationDetail.DBColumnName)] != DBNull.Value)
     {
         entity.Attributes[configurationDetail.EntityAttributeName] = (T)reader[string.Format("{0}{1}", prefix, configurationDetail.DBColumnName)];
     }
 }
Example #2
0
 /// <summary>
 /// 实体属性映射配置明细实体的赋值
 /// </summary>
 /// <param name="detail"></param>
 /// <param name="reader"></param>
 /// <param name="prefix"></param>
 public static void SetEntityAttributeMapConfigurationDetailSelectFields(EntityAttributeMapConfigurationDetail detail, DbDataReader reader, string prefix)
 {
     detail.ID = (Guid)reader[string.Format("{0}id", prefix)];
     detail.EntityAttributeName = reader[string.Format("{0}entityattributename", prefix)].ToString();
     detail.DBColumnName        = reader[string.Format("{0}dbcolumnname", prefix)].ToString();
     detail.AttributeType       = (int)reader[string.Format("{0}attributetype", prefix)];
     detail.CreateTime          = (DateTime)reader[string.Format("{0}createtime", prefix)];
     detail.ModifyTime          = (DateTime)reader[string.Format("{0}modifytime", prefix)];
 }
Example #3
0
        public QueryResult <EntityAttributeMapConfigurationDetail> QueryByPageSync(Guid configurationId, int page, int pageSize)
        {
            QueryResult <EntityAttributeMapConfigurationDetail> result = new QueryResult <EntityAttributeMapConfigurationDetail>();

            DBTransactionHelper.SqlTransactionWork(DBTypes.SqlServer, true, false, _dbConnectionFactory.CreateReadForEntityAttributeMapConfiguration(), (conn, transaction) =>
            {
                SqlTransaction sqlTran = null;
                if (transaction != null)
                {
                    sqlTran = (SqlTransaction)transaction;
                }

                using (SqlCommand commond = new SqlCommand()
                {
                    Connection = (SqlConnection)conn,
                    CommandType = CommandType.Text,
                    CommandText = @"set @currentpage=@page
		                                select @count= count(*) from [dbo].[EntityAttributeMapConfigurationDetail] where configurationid=@configurationid
		                                if @pagesize*@page>=@count
			                                begin
				                                set @currentpage= @count/@pagesize
				                                if @count%@pagesize<>0
					                                begin
						                                set @currentpage=@currentpage+1
					                                end
				                                if @currentpage=0
					                                set @currentpage=1
			                                end
		                                else if @page<1 
			                                begin 
				                                set @currentpage=1
			                                end 

		                                declare @columns nvarchar(500),@prefix nvarchar(20)
		                                set @prefix=''
		                                set @columns=dbo.core_GetEntityAttributeMapConfigurationDetailQueryColumns(@prefix)

		                                select @prefix as prefix

		                                declare @execsql nvarchar(1000)
		                                set @execsql='select '+@columns+' from [dbo].[EntityAttributeMapConfigurationDetail]WITH (SNAPSHOT) where configurationid=@configurationid '
		                                +'order by [createtime] desc '
		                                +'offset  ( @pagesize * ( @currentpage - 1 )) rows '
		                                +'fetch next @pagesize rows only;'
		
		                                exec sp_executesql @execsql, N'@configurationid uniqueidentifier,@pagesize int,@currentpage int',@configurationid, @pagesize,@currentpage   "            ,
                    Transaction = sqlTran
                })
                {
                    var parameter = new SqlParameter("@page", SqlDbType.Int)
                    {
                        Value = page
                    };
                    commond.Parameters.Add(parameter);

                    parameter = new SqlParameter("@pagesize", SqlDbType.Int)
                    {
                        Value = pageSize
                    };
                    commond.Parameters.Add(parameter);

                    parameter = new SqlParameter("@configurationid", SqlDbType.UniqueIdentifier)
                    {
                        Value = configurationId
                    };
                    commond.Parameters.Add(parameter);


                    parameter = new SqlParameter("@count", SqlDbType.Int)
                    {
                        Direction = ParameterDirection.Output
                    };
                    commond.Parameters.Add(parameter);

                    parameter = new SqlParameter("@currentpage", SqlDbType.Int)
                    {
                        Direction = ParameterDirection.Output
                    };
                    commond.Parameters.Add(parameter);

                    commond.Prepare();

                    SqlDataReader reader = null;

                    using (reader = commond.ExecuteReader())
                    {
                        string prefix = string.Empty;
                        if (reader.Read())
                        {
                            prefix = reader["prefix"].ToString();
                        }

                        if (reader.NextResult())
                        {
                            while (reader.Read())
                            {
                                var detail = new EntityAttributeMapConfigurationDetail();
                                StoreHelper.SetEntityAttributeMapConfigurationDetailSelectFields(detail, reader, prefix);

                                result.Results.Add(detail);
                            }
                        }

                        reader.Close();

                        result.TotalCount  = (int)commond.Parameters["@count"].Value;
                        result.CurrentPage = (int)commond.Parameters["@currentpage"].Value;
                    }
                }
            });

            return(result);
        }
        public async Task FillEntity(EntityAttributeMapConfigurationDetail configurationDetail, DbDataReader reader, string prefix, ModelBase entity)
        {
            FillEntitySync(configurationDetail, reader, prefix, entity);

            await Task.FromResult(0);
        }