在网页中,我希望能够返回 BlogCategoryName 以及类别中的博客数量。例如
博客名称X(3)
博客名称Y(4)
....
我正在使用实体框架并有一个博客类别类
namespace emoCard.Domain.Entities
{
public class BlogCategory
{
public BlogCategory()
{
this.Blogs = new List<Blog>();
}
public int BlogCategoryID { get; set; }
public string BlogCategoryName { get; set; }
public string BlogCategoryDescription { get; set; }
public int BlogCategoryOrder { get; set; }
public List<Blog> Blogs { get; set; }
}
}
我可以按照以下方式设置视图模型
namespace emoCard.WebUI.Models
{
public class BlogCategoryViewModel
{
public IEnumerable<BlogCategory> BlogCategories { get; set; }
}
}
然后有一个看起来像的控制器
public PartialViewResult BlogCategories()
{
BlogCategoryViewModel viewModel = new BlogCategoryViewModel
{
BlogCategories = repository.BlogCategories.Include(b => b.Blogs)
};
return PartialView(viewModel);
}
然后我可以计算视图中每个类别的博客数量。
这可行,但我有很多问题。这些是:
- 我需要撤回所有信息(即我并不真正需要博客信息,只需要计数)。
- 计算视图中的计数似乎不正确。
我想我需要更改我的视图模型,以便我可以填充与每个类别关联的博客类别和博客数量,然后创建一个 linq 查询,该查询类别和博客计数但不是所有博客信息。我认为新的视图模型应该遵循
public BlogCategoryMenuItem(BlogCategory blogCategories, int numberOfBlogs)
{
BlogCategories = blogCategories;
NumberOfBlogs = numberOfBlogs;
}
public class BlogCategoryViewModel
{
public IEnumerable<BlogCategoryMenuItem> BlogCategoryMenuItem { get; set; }
}
我有两个问题:
1. 这是解决我遇到的问题的最佳方法吗?
2. 如何使用 linq 填充这个 viewmodel 对象?
谢谢你的帮助。