Entity Framework - загрузка сообщений с тегами через таблицу сопоставления - PullRequest
0 голосов
/ 03 января 2019

Я использую Entity Framework в C # для загрузки данных из следующих таблиц:

У меня есть три таблицы:

Table Post:
PostsID
Name
Description
CreatedBy

Table Tag:
TagID
Title
CreatedBy

Table PostTagMap:
MapID
PostID
TagID

Я пытаюсь загрузить все сообщения, а также хочу загрузить соответствующие теги через таблицу сопоставлений.

Я создал таблицы в SQL Server, а затем создал отображение EF на нем.

Почтовый класс:

public Post()
    {
        this.PostsTagsMaps = new HashSet<PostsTagsMaps>();
        this.Tags = new List<Tag>();
    }

public int PostId { get; set; }
    public string Name { get; set; }

    public virtual ICollection<PostsTagsMap> PostsTagsMaps { get; set; }
public virtual ICollection<Tag> Tags { get; set; }

Класс тегов:

public Tag()
    {

    }

    public int TagId { get; set; }
    public string Title { get; set; }
    public string CreatedBy { get; set; }

    public virtual ICollection<PostsTagsMap> PostsTagsMaps { get; set; }


public partial class PostsTagsMap
{

    public int MapId { get; set; }
    public int PostId { get; set; }
    public int TagId { get; set; }
    public string CreatedBy { get; set; }

    public virtual Post Post { get; set; }
    public virtual Tag Tag { get; set; }
}

 posts = context.Posts.Include(c => c.PostsTagsMaps).ToList();  

1 Ответ

0 голосов
/ 03 января 2019

Вы можете охотно получить их, используя теги записей.Не видя никакого кода относительно ваших отображений, это будет что-то вроде:

posts.Include(post => post.PostTags.Select(postTag => postTag.Tag));

Теперь, когда вы добавили некоторый код:

posts = context.Posts.Include(c => c.PostsTagsMaps.Select(pt => pt.Tag)).ToList();

Если вы хотите получить доступ к тегам оттуда, вы всегда можете добавить свойство только для чтения, которое получает их из элементов таблицы сопоставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...