У меня есть две следующие модели
public class Account
{
public int Id { get; set; }
public string Name { get; set; }
public int CurrentPeriodId { get; set; }
[ForeignKey("CurrentPeriodId")]
public virtual Period CurrentPeriod { get; set; }
public virtual ICollection<Period> Periods { get; set; }
}
public class Period
{
public int Id { get; set; }
public int AccountId { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public virtual Account Account { get; set; }
}
И я пытаюсь выполнить следующий запрос:
from p in context.Periods
where p.AccountId == accountId &&
p.Id == p.Account.CurrentPeriodId
select p.StartDate
И я получаю исключение sql, говорящее« Недопустимое имя столбца Account_AccountId ».
Я знаю, что могу подойти к этому со стороны учетной записи и сделать что-то вроде
from a in context.Accounts
where a.Id == id
select a.CurrentPeriod.StartDate
Но я хотел бы знать, как настроить взаимосвязь, чтобы заставить другой запрос работать. Что мне не хватает?