Я недавно начал использовать общий шаблон репозитория в своем новом приложении, я следовал этому руководству Криса Пратта Действительно общий репозиторий .Я с нетерпением загружаю свои свойства навигации в свой метод GetQueryable, как этот
if (includeProperties != null)
{
foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
}
else
{
foreach (var property in context.Model.FindEntityType(typeof(TEntity)).GetNavigations())
query = query.Include(property.Name);
}
Теперь первый уровень свойств навигации загружается нормально, но если у меня есть свойство навигации внутри свойства навигации, то есть на втором уровне, это не такзагрузка, следовательно, возвращает ноль,
public partial class Project : Entity<int>
{
public Project()
{
this.UserProjects = new HashSet<UserProject>();
}
[Required]
public string Title { get; set; }
public virtual ICollection<UserProject> UserProjects { get; set; }
}
public class UserProject : Entity<int>
{
public int UserId { get; set; }
public virtual User User { get; set; }
public int ProjectId { get; set; }
public virtual Project Project { get; set; }
}
public class User : IdentityUser<int>
{
public User()
{
this.UserProjects = new HashSet<UserProject>();
}
public Photo Photo { get; set; }
public virtual ICollection<UserProject> UserProjects { get; set; }
}
Здесь, когда я запрашиваю Проекты, UserProjects заполняются правильно, и внутри UpserProjects Project также заполняется, но User является нулевым, хотя UserProject имеет userId.