我有这样的数据结构
public class Author
{
...
}
public class Comment
{
public long Userid { get; set; }
...
}
public class Blog
{
public Author Author { get; set; }
public ICollection<Comment> Comments { get; set; }
}
当我尝试从DB中检索一些数据时,请使用以下构造
IRepository<Blog> blogsRepository = _repositoryFactory.Create<Blog>();
IQueryable<Blog> blogsQuery = blogsRepository.Query().Include(x => x.Author);
List<BlogsData> blogsData = blogsQuery.Select(x => new BlogsData
{
Blog = x,
Commented = x.Comments.Any(z => z.Userid == userId)
}).ToList();
其中BlogsData
是
public class BlogsData
{
public Blog Blog { get; set; }
public bool Commented { get; set; }
}
但是,在将所有数据提取到List<BlogsData>
之后,Blog.Author
属性为null
。
我不明白,为什么在这种情况下会忽略Include(x => x.Author)
?
以及如何解决这个问题?
答案 0 :(得分:1)
美好的一天,我在EF的经历是你还需要在选择
中添加它在
中添加作者public class BlogsData
{
public Author Author { get; set; }
public Blog Blog { get; set; }
public bool Commented { get; set; }
}
并将其添加到
中List<BlogsData> blogsData = blogsQuery.Select(x => new BlogsData
{
Author x.Author,
Blog = x,
Commented = x.Comments.Any(z => z.Userid == userId)
}).ToList();