LINQ возвращает смешанную дату между двумя таблицами с отношением «многие к одному» - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь вернуться к представлению смешанного результата между двумя таблицами, между которыми есть отношение многие к одному. Я знаю, что это возможно, но я все еще на начальном этапе в мире программирования, поэтому мне нужна небольшая помощь для этого!

Примечание : если запрос в 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; }
}

Вот таблица сообщений:

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("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; }
  }

Как вы видите, это была моя модель представления, и просто существует связь между таблицей публикаций и таблицей глав, где их много от главы к одной. Также клавиша Forging между ними называется PostID .

Теперь я хочу вернуть из моего контроллера в мое представление смешанную дату из обеих таблиц, но я не знаю, как написать запрос LINQ, чтобы сделать это, поскольку данные смешаны, и я не могу вернуть смешанные данные в моем представлении. модель .. Так, как я могу решить это.

1 Ответ

0 голосов
/ 30 октября 2018

Если вы хотите, чтобы все ваши объекты из таблицы 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, включая главы. Та же структура для другой таблицы.

См. IRepository, асинхронные методы, await / task.result прежде всего, если вы новичок в этом.

Удачи!

...