2013-01-24 24 views
7

Đây là biểu thức Lambda tôi đang sử dụng để thử và bao gồm bảng User, điều này sẽ phát ra lỗi.Bao gồm các mô hình có nguồn gốc Lớp liên quan

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(); 

Các bao gồm tuyên bố cho lỗi này

Các Bao gồm biểu thức đường dẫn phải đề cập đến một bất động sản chuyển hướng xác định trên loại. Sử dụng đường dẫn rải rác cho thuộc tính điều hướng tham chiếu và toán tử Chọn cho thuộc tính điều hướng bộ sưu tập.

Mô hình trong câu hỏi

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

Làm thế nào để bao gồm các User bảng cho ProjectDoc loại Cover?

CẬP NHẬT: Mỗi câu trả lời. Tôi đã cập nhật mô hình cho Cover để trông giống như thế này và loại bỏ bao gồm mà tôi đã nói là gây ra lỗi. Bây giờ tôi có thể lấy dữ liệu:

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

Trả lời

2

Hiện tại là not supported. Mong muốn tải các quan hệ trên các loại có nguồn gốc không hoạt động. Điều tốt nhất bạn có thể làm là thực hiện truy vấn riêng biệt để tải tất cả người dùng cần thiết cho Covers đã được truy vấn đầu tiên và cho phép EF thực hiện phép thuật của nó (nó sẽ điền các thuộc tính điều hướng của bạn trên các thực thể đã tải nhưng bạn phải tắt tải xuống).

Các vấn đề liên quan