Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Shiningemerald
383 / 116 / 22
Регистрация: 05.01.2012
Сообщений: 934
1

Связь многие ко многим

13.11.2019, 19:54. Показов 873. Ответов 5
Метки нет (Все метки)

Ребят, привет!
Продолжаю писать веб-сервис.
Есть следующий код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class MyContext : DbContext
{
    public DbSet<Post> Posts { get; set; }
    public DbSet<Tag> Tags { get; set; }
 
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<PostTag>()
            .HasKey(t => new { t.PostId, t.TagId });
 
        modelBuilder.Entity<PostTag>()
            .HasOne(pt => pt.Post)
            .WithMany(p => p.PostTags)
            .HasForeignKey(pt => pt.PostId);
 
        modelBuilder.Entity<PostTag>()
            .HasOne(pt => pt.Tag)
            .WithMany(t => t.PostTags)
            .HasForeignKey(pt => pt.TagId);
    }
}
 
public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
 
    public List<PostTag> PostTags { get; set; }
}
 
public class Tag
{
    public string TagId { get; set; }
 
    public List<PostTag> PostTags { get; set; }
}
 
public class PostTag
{
    public int PostId { get; set; }
    public Post Post { get; set; }
 
    public string TagId { get; set; }
    public Tag Tag { get; set; }
}
Как мне теперь в контроллере вытащить через пост ID тегов которые в нем есть? не используя третью промежуточную таблицу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2019, 19:54
Ответы с готовыми решениями:

MysqlEntity - связь многие ко многим
Всем привет. Есть таблица &quot;ученик&quot;и &quot;предмет&quot;. Между ними стоит связь многие ко многим. Связующая...

Entity Framework многие-ко-многим
Добрый день! Прошу прощения, если создал тему не в том разделе. Ситуация такая: Использую EF...

Выборка из связанных таблиц (многие-ко-многим)
Классический случай: таблица книг, таблица авторов, промежуточная таблица. -8 8- Можно ли...

Entity Framework связь один-ко-многим
Приветствую! Имеется две модели (со связью один-ко-многим): public class Menu { ...

5
2409 / 1839 / 542
Регистрация: 02.08.2011
Сообщений: 5,157
13.11.2019, 20:22 2
Цитата Сообщение от Electroflower Посмотреть сообщение
не используя третью промежуточную таблицу?
То есть вы ее создали, чтобы потом не использовать?

Грузите нужный пост, и по коллекции PostTags через LINQ выбираете TagId.
1
Shiningemerald
383 / 116 / 22
Регистрация: 05.01.2012
Сообщений: 934
13.11.2019, 20:26  [ТС] 3
var id = 1;
using (var context = new MyContext ())
{

var tempUser= context.Posts .FirstOrDefault(x => x.PostId == id); //берем пост
tempUser. //как тут через точку взять все теги?

context.SaveChanges();
}

Добавлено через 1 минуту
IamRain, ну фреймвок ее использует полюбому, а вот чтобы не писать море кода есть короткий вариант..но как вытащить...
0
2409 / 1839 / 542
Регистрация: 02.08.2011
Сообщений: 5,157
13.11.2019, 20:29 4
C#
1
2
var tempUser= context.Posts.FirstOrDefault(x => x.PostId == id); //берем пост
var tagIds = tempUser.PostTags.Select(pt => pt.TagId).ToArray(); // тут будет массив
Кажется, вы рановато взялись за ASP.NET.
1
18 / 16 / 3
Регистрация: 11.05.2018
Сообщений: 163
14.11.2019, 12:22 5
C#
1
var tags = context.Posts.SelectMany(x=>x.Tags).ToArray();
1
Shiningemerald
383 / 116 / 22
Регистрация: 05.01.2012
Сообщений: 934
14.11.2019, 20:19  [ТС] 6
IamRain,
Цитата Сообщение от IamRain Посмотреть сообщение
Кажется, вы рановато взялись за ASP.NET.
возможно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2019, 20:19

Модель "многие-ко-многим"
Здравствуйте. Есть код модели: public class Good { public int Id {get;...

Создать две таблицы (продукт, и производитель), и создать между ними связь — один ко многим
Всем привет. Появилась проблема. Нужно создать две таблицы (продукт, и производитель), и создать...

Entity Framework 6. Code First. Связь один-ко-многим и многие-ко-многим одновременно
Здрасти. Есть таблица юзеров и объявлений. У юзера может быть множество объявлений. Здесь действует...

Связь многие-ко-многим
Здравствуйте! Какую ввести дополнительную сущность, чтобы избавиться от связи многие-ко-многим?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru