У меня есть таблица AccountSecurity, которая является таблицей многих ко многим, которая связывает объекты Аккаунта и Ценные бумаги. Когда я пишу запрос ниже, он возвращает все Ценные бумаги, которые удовлетворяют условию where. Однако каждый экземпляр Security в списке больше не ссылается на учетную запись AccountSecurity. Поэтому, когда я перечисляю [0] .AccountSecurity, он пуст. Нужно ли включать эту информацию? Я знаю, что могу переписать запрос для возврата AccountSecurities и использовать .Include («Безопасность»), но мне интересно, можно ли это сделать другим путем.Entity Framework, как включить связанные объекты в этом примере
var list = (from acctSec in base.context.AccountSecurities
where acctSec.AccountId == accountId
select acctSec.Security).ToList();
UPDATE
Конечно, если я два запроса граф получает заполняется правильно, там должен быть способ сделать это в одном кадре.
var securities = (from acctSec in base.context.AccountSecurities
where acctSec.AccountId == accountId
select acctSec.Security).ToList();
//this query populates the AccountSecurities references within Security instances returned by query above
var xref = (from acctSec in base.context.AccountSecurities
where acctSec.AccountId == accountId
select acctSec).ToList();
AccountSecurity - это таблица многих ко многим. Это означает, что существует только sec.AccountSecurities, потому что одна защита может принадлежать многим учетным записям. Я пробовал делать sec.AccountSecurities [0] .AccountId == accountId, но это вызывает исключение. – e36M3
Переписал место для многих для многих. –
спасибо! Я пропустил это, и единственная проблема, которую я вижу в этом, заключается в том, что в нее возвращаются ценные бумаги, которые будут иметь ссылку на все учетные записи, к которым они принадлежат, а не только тот, который указан в accountId. Другими словами, если у меня есть 5 ценных бумаг, но эти 5 ценных бумаг сопоставляются с 2000 учетными записями, то у меня есть 5x2000 строк. Я думаю, что может быть гораздо эффективнее сделать два запроса, чтобы сначала заполнить график ценными бумагами, а затем информацию acccountsecurity (many-to-many) позже. – e36M3