2013-01-24 13 views
7

Oto wyrażenie Lambda, którego używam, aby spróbować dołączyć tabelę User, która zgłasza błąd.Uwzględnij modele pochodne Powiązane klasy

ICollection<Activity> activity = db.Activities 
      .Include(i => i.Project.ProjectDoc.OfType<Cover>().Select(v => v.User)) 
      .Where(u => u.UserID == WebSecurity.CurrentUserId) 
      .OrderByDescending(d => d.DateCreated).ToList(); 

include oświadczenie daje ten błąd

Wyrażenie zawierać ścieżkę musi odnosić się do właściwości nawigacji określonej na tego typu. Użyj kropkowanych ścieżek dla właściwości nawigacji referencyjnej i operatora Wybierz dla właściwości nawigacji kolekcji.

omawianego modelu

public abstract class ProjectDoc 
{ 
    public int ProjectDocID { get; set; } 
    public int ProjectID { get; set; } 
    public string DocTitle { get; set; } 
    public string Status { get; set; } 
    public string Access { get; set; } 
    public DateTime DateCreated { get; set; } 


    public virtual ProjectDocAccess ProjectDocAccess { get; set; } 
    public virtual Project Project { get; set; } 
    public virtual ICollection<Comment> Comment { get; set; } 
    public ICollection<ProjectDocVote> ProjectDocVote { get; set; } 
} 
public class Segment : ProjectDoc 
{ 
    public string Content { get; set; } 
} 
public class Cover : ProjectDoc 
{ 
    public string CoverURL { get; set; } 
    public int UserID { get; set; } 
    public User User { get; set; } 
} 

Jak dołączyć tabelę User dla ProjectDoc typu Cover?

UPDATE: Za odpowiedź. Zaktualizowałem model do wersji Cover, aby wyglądał w ten sposób, i usunięto uwzględnienie tego, co powiedziałem, było przyczyną błędu. Teraz mogę uzyskać dane:

public class Cover : ProjectDoc 
{ 
    public string CoverURL { get; set; } 
    public int UserID { get; set; } 
    public virtual User User { get; set; } 
} 

Odpowiedz

2

Obecnie jest to not supported. Chętne relacje ładowania na typy pochodne nie działają. Najlepsze, co możesz zrobić, to wykonać osobne zapytanie, aby załadować wszystkich wymaganych użytkowników dla okładek już załadowanych przez pierwsze zapytanie i pozwolić EF wykonać swoją magię (powinna wypełnić twoje właściwości nawigacyjne na już załadowanych elementach, ale musisz mieć wyłączone leniwy ładowanie).

Powiązane problemy