Entity Framework Code First-eins-zu-Eins-Beziehung

Habe ich die folgenden zwei Modelle

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; }
}

Ich versuche die folgende Abfrage ausführen:

from p in context.Periods
where p.AccountId == accountId &&
      p.Id == p.Account.CurrentPeriodId
select p.StartDate

Und ich bekomme einen sql-Ausnahme sagen, "Ungültige Spalte name Account_AccountId".

Ich weiß, ich könnte dieses Konzept von der Konto-Seite und tun so etwas wie

from a in context.Accounts
where a.Id == id
select a.CurrentPeriod.StartDate

Aber ich würde gerne wissen, wie setup die Beziehung zu bekommen, die andere Abfrage, um zu arbeiten. Was bin ich?

InformationsquelleAutor Nick Olsen | 2011-10-07
Schreibe einen Kommentar