У меня есть этот Linq запрос:Регистрация с внутренним списком
var investorData = from investor in db.Investors
join investorLine in db.InvestorStatementLines
on investor.InvestorID equals investorLine.InvestorID
where investor.UserId == userId
select new InvestorViewModel()
{
InvestorId = investor.InvestorID,
InvestorName = investor.Name,
FundingDate = investor.FundingDate,
DueDate = investor.DueDate,
FundsCommitted = investor.FundsCommitted,
FundsInvested = investor.FundsInvested,
StatementLines =
db.InvestorStatementLines.Where(s => s.InvestorID == investor.InvestorID)
.Select(t => new InvestorStatementLineVM
{
Balance = t.Balance,
Credit = t.Credit,
Debit = t.Debit,
InvestorStatementLineDetails = t.Details,
Date = t.Date
}).ToList()
};
модель представление:
public class InvestorViewModel
{
public int InvestorId { get; set; }
public string InvestorName { get; set; }
public DateTime FundingDate { get; set; }
public DateTime? DueDate { get; set; }
public Decimal? FundsCommitted { get; set; }
public Decimal? FundsInvested { get; set; }
public List<InvestorStatementLineVM> StatementLines { get; set; }
}
Что происходит, когда я выполнение запроса я получаю 125 записей, и то номер StatementLines для этого инвестора. Поэтому я получаю 125 одинаковых записей, но я ожидаю один результат, который будет содержать 125 строк операторов во внутреннем списке.
Вы думаете, что вопрос правильный?
Спасибо, Лацьале
Почему вы делаете соединение, а затем подзапрос в basi Получают одинаковые данные? Либо удалите соединение, либо выполните группу и удалите внутренний запрос. Или еще лучше использовать свойства навигации вместо https://coding.abel.nu/2012/06/dont-use-linqs-join-navigate/ – juharr
@juharr, как бы вы переделали этот запрос с помощью свойств навигации, можете ли вы поместить это в ответ? Спасибо – Laziale
Какой «один результат» вы хотите получить? Первое утверждение, последнее, количество всех утверждений или что-то еще? – JohnH