У меня два объекта: запросы и действия. Запросы имеют атрибут FkDebitor с идентификатором дебитора. accts также имеет AccountCode, который похож на FkDebitor, но идентификатор заполнен ведущими нулями. Мне нужно удалить ведущие нули, чтобы можно было объединить эти два вместе:
List<Requests> requests = context.Requests.ToList();
List<AutolineAccts> accts = AlContext.AutolineAccts.ToList();
IEnumerable < dynamic > result = (from request in requests
join account in accts
on request.FkDebitor.ToString() equals account.AccountCode.TrimStart(new Char[] { '0' })
select new
{
ID = request.PkRequest.ToString(),
Location = request.FkLocation,
RequestDate = request.RequestDate.Value,
Requestor = request.FkRequestor,
DebitorNr = request.FkDebitor.ToString(),
NewDebit = request.Debit.ToString(),
ApprovalStatus = request.ApprovalStatus.ToString(),
RecommendationStatus = request.RecommendationStatus.ToString(),
DebitorName = account.CustomerSname,
Limit = account.CreditLimit
}).ToList();
Я попытался обрезать AccountCode в операторе соединения, но получаю пустой набор результатов, хотя в обоих наборах есть числа которые должны быть сопоставлены (например, 5371 в FkDebitor и 005371 в AccountCode).
Есть идеи, как мне заставить эту штуку работать? Я уже пытался обрезать ведущие нули в списке перед запуском части sql, но мой код ничего не делает с атрибутом accts.AccountCode:
for (int i = 0; i < accts.Count(); i++)
{
accts.ElementAt(i).AccountCode = accts.ElementAt(i).AccountCode.TrimStart('0');
}