none
А как правильно добавить данные в связанные таблицы отношением многие ко многим? RRS feed

  • Вопрос

  • А как правильно добавить данные в связанные таблицы отношением многие ко многим? Если есть у меня классы модели news и tags, связанные отношением многие ко многим, то, наверное,  нужно создавать эти сущности по отдельности и потом указывать в объединяющей таблице какая конкретная сущность news связанна с другой конкретной сущностью tags? Пытался при создании сущности сразу заполнить коллекцию, но ничего у меня не получалось( 
    11 марта 2013 г. 18:58

Ответы

  • 1. Создаем сущности news и tag.

    2. Добавляем их в контекст EF.

    3. Сохраняем изменения в базе, при этом этим сущностям выдадут ID.

    4. Связываем их между собой, например с сущности news в коллекцию связанных tags добавляем созданный и сохраненный tag.

    5. Сохраняем изменения в базе, при этом EF добавит запись в промежуточную таблицу, реализую связь много ко многим.

    12 марта 2013 г. 5:32

Все ответы

  • В ООП отношения многи ко многим реализуются перекрёстными ссылками, а в реляционной модели через промежуточную таблицу. Так вот работу по заполнению этой таблицы должна выполнять EF, вам только надо заполнить эти коллекции и последовательно сохранить. Скорее всего у вас косяк в другом месте, т.е. что то нет так делаете.
    11 марта 2013 г. 19:13
    Модератор
  • при создании сущности news в представлении, мне нужно создавать текстовое поле и для коллекции? У меня получается добавлять тег, когда я редактирую сущность, но при создании не получается. Или нужно просто создать сущность новости, а потом при создании сущности tags указать идентификатор той сущности news, с которой я хочу связать создаваемую сущность tags? ))
    11 марта 2013 г. 19:36
  • 1. Создаем сущности news и tag.

    2. Добавляем их в контекст EF.

    3. Сохраняем изменения в базе, при этом этим сущностям выдадут ID.

    4. Связываем их между собой, например с сущности news в коллекцию связанных tags добавляем созданный и сохраненный tag.

    5. Сохраняем изменения в базе, при этом EF добавит запись в промежуточную таблицу, реализую связь много ко многим.

    12 марта 2013 г. 5:32