7
下面是我用來嘗試幷包含User
表的Lambda表達式,該表引發錯誤。包含派生模型相關類
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語句給出了這樣的錯誤
包含路徑表達式必須是指在 所述類型定義的導航屬性。對於參考導航屬性使用虛線路徑,對集合導航屬性使用Select 運算符。
有問題的模型
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; }
}
怎樣包括User
表Cover
型ProjectDoc
?
UPDATE: 根據答案。我更新了Cover
的模型,看起來像這樣,並刪除了我說的導致錯誤的內容。我現在可以得到的數據:
public class Cover : ProjectDoc
{
public string CoverURL { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
}