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)]; } }
/// <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)]; }
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); }