using (var cmd = _unitOfWork.DbContext.Database.Connection.CreateCommand())
{
if (cmd.Connection.State != ConnectionState.Open)
cmd.Connection.Open();
cmd.CommandText = _queryBuilder.SelectOnTable(level1RepoFieldsTable, selectColumns)
.WhereConditions(searchFields?.ToCompareConditions(repositoryFields).ToList())
.OrderBys(sortFields == null
? new List<OrderBy>
{
new OrderBy {Column = Constants.IdentityColumn, Direction = OrderByDirection.Descending}
}
: sortFields.ToOrderBys(repositoryFields).ToList())
.CreateRawSql();
using (var dataReader = cmd.ExecuteReader())
{
while (dataReader.Read())
{
var recordId = dataReader.GetColumnValue<int>(Constants.IdentityColumn);
if (recordId == 0)
continue;
var tdxRecord = _tdxRecordRepository.FindBy(x => x.Id == recordId)
.FirstOrDefault();
if (tdxRecord != null)
{
tdxRecord.RecordFields = dataReader.GetRecordFields(repositoryFields).ToList();
tdxRecords.Add(tdxRecord);
}
if (getFirstMatchingRecord) break;
}
}
}
{
if (cmd.Connection.State != ConnectionState.Open)
cmd.Connection.Open();
cmd.CommandText = _queryBuilder.SelectOnTable(level1RepoFieldsTable, selectColumns)
.WhereConditions(searchFields?.ToCompareConditions(repositoryFields).ToList())
.OrderBys(sortFields == null
? new List<OrderBy>
{
new OrderBy {Column = Constants.IdentityColumn, Direction = OrderByDirection.Descending}
}
: sortFields.ToOrderBys(repositoryFields).ToList())
.CreateRawSql();
using (var dataReader = cmd.ExecuteReader())
{
while (dataReader.Read())
{
var recordId = dataReader.GetColumnValue<int>(Constants.IdentityColumn);
if (recordId == 0)
continue;
var tdxRecord = _tdxRecordRepository.FindBy(x => x.Id == recordId)
.FirstOrDefault();
if (tdxRecord != null)
{
tdxRecord.RecordFields = dataReader.GetRecordFields(repositoryFields).ToList();
tdxRecords.Add(tdxRecord);
}
if (getFirstMatchingRecord) break;
}
}
}
No comments:
Post a Comment