LINQ return 具有多对一关系的两个表之间的混合日期
LINQ return Mixed Date Between Two Tables With Many-To-One Relation
我正在尝试 return 查看 2 table 之间的混合结果,它们之间存在多对一关系。我知道这是可能的,但我仍处于编程世界的初级阶段,所以我需要一些帮助来做到这一点!
注意:如果在LINQ中查询会更好
这是我的视图模型:
public class HomeVM
{
public List<Post> Comics { set; get; }
public List<Post> UpdatedComics { set; get; }
public List<Post> Manga { set; get; }
public List<Post> UpdatedManga { set; get; }
public List<Post> Trending { set; get; }
public IList<Chapter> Chapter{ set; get; }
}
这里是 Post Table:
public Post()
{
Chapter = new HashSet<Chapter>();
}
public int PostID { get; set; }
[Display(Name = "Title")]
[Required]
[StringLength(150)]
public string Name { get; set; }
[AllowHtml]
[Display(Name = "Description")]
[Column(TypeName = "text")]
public string Description { get; set; }
public virtual ICollection<Chapter> Chapter { get; set; }
这是第 Table 章:
[Table("Chapter")]
public partial class Chapter
{
public int ChapterID { get; set; }
[Display(Name = "Chapter Name")]
[StringLength(150)]
public string ChapterName { get; set; }
[Display(Name = "Chapter Slug")]
[StringLength(150)]
public string ChapterSlug { get; set; }
[Required]
[Display(Name = "Chapter Number")]
public double ChapterNumber { get; set; }
[Display(Name = "Post Id")]
public int PostID { get; set; }
public virtual Post Post { get; set; }
}
如您所见,那是我的视图模型,只是 Post Table 和章节 table 之间存在一种关系,其中从章节的一边到另一边有很多关系。它们之间的锻造密钥也称为 PostID.
现在我想 return 从我的控制器到我的视图 table 的混合日期,但我不知道如何编写 LINQ 查询来执行此操作,因为数据混合并且我不能 return 在我的视图模型中混合数据。那么我该如何解决这个问题。
如果您想要 table Post 中的所有对象:
_repository() 是 IRepository
using( var repository = _repository() )
{
var postObjectList = await repository().Get<Post>.Where(_if you need
conditions_).Include( a =>
a.Chapter).ToListAsync();
}
这将为您提供所有 Post 个具有 Where 子句条件的对象,包括章节。另一个 table.
的结构相同
请参阅 IRepository、异步方法、await/task。如果您是新手,请首先查看结果。
祝你好运!
我正在尝试 return 查看 2 table 之间的混合结果,它们之间存在多对一关系。我知道这是可能的,但我仍处于编程世界的初级阶段,所以我需要一些帮助来做到这一点!
注意:如果在LINQ中查询会更好
这是我的视图模型:
public class HomeVM
{
public List<Post> Comics { set; get; }
public List<Post> UpdatedComics { set; get; }
public List<Post> Manga { set; get; }
public List<Post> UpdatedManga { set; get; }
public List<Post> Trending { set; get; }
public IList<Chapter> Chapter{ set; get; }
}
这里是 Post Table:
public Post()
{
Chapter = new HashSet<Chapter>();
}
public int PostID { get; set; }
[Display(Name = "Title")]
[Required]
[StringLength(150)]
public string Name { get; set; }
[AllowHtml]
[Display(Name = "Description")]
[Column(TypeName = "text")]
public string Description { get; set; }
public virtual ICollection<Chapter> Chapter { get; set; }
这是第 Table 章:
[Table("Chapter")]
public partial class Chapter
{
public int ChapterID { get; set; }
[Display(Name = "Chapter Name")]
[StringLength(150)]
public string ChapterName { get; set; }
[Display(Name = "Chapter Slug")]
[StringLength(150)]
public string ChapterSlug { get; set; }
[Required]
[Display(Name = "Chapter Number")]
public double ChapterNumber { get; set; }
[Display(Name = "Post Id")]
public int PostID { get; set; }
public virtual Post Post { get; set; }
}
如您所见,那是我的视图模型,只是 Post Table 和章节 table 之间存在一种关系,其中从章节的一边到另一边有很多关系。它们之间的锻造密钥也称为 PostID.
现在我想 return 从我的控制器到我的视图 table 的混合日期,但我不知道如何编写 LINQ 查询来执行此操作,因为数据混合并且我不能 return 在我的视图模型中混合数据。那么我该如何解决这个问题。
如果您想要 table Post 中的所有对象: _repository() 是 IRepository
using( var repository = _repository() )
{
var postObjectList = await repository().Get<Post>.Where(_if you need
conditions_).Include( a =>
a.Chapter).ToListAsync();
}
这将为您提供所有 Post 个具有 Where 子句条件的对象,包括章节。另一个 table.
的结构相同请参阅 IRepository、异步方法、await/task。如果您是新手,请首先查看结果。
祝你好运!