Добавление связанных объектов в объект

#c# #asp.net #entitydatasource

#c# #asp.net #entitydatasource

Вопрос:

У меня есть two tables that have many-to-many relationship . Я хочу вставить new object в первую таблицу одновременно с использованием отношений ко вторым табличным объектам entityDataSource .
В настоящее время я использую DetailsView для ввода данных для нового объекта первой таблицы и CheckBoxList для выбора связанных объектов из второй таблицы.

Проблема заключается в подключении связанных объектов к новому объекту. Прямо сейчас я пробую это в событии вставки EntityDataSource, выбирая объекты из второй таблицы и добавляя их в EntityCollection связанных элементов вставляемой сущности.

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

Комментарии:

1. Я думаю, что использовать отношение «многие ко многим» нехорошо. вы должны сделать связь нормальной?

Ответ №1:

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

Например, если table1 [Table1Id, …… ] и table2 [Table2Id, …….], затем создайте третью таблицу table3 [Table3Id, Table1Id, Table2Id]……

Не уверен, какую форму EF [Сначала код / сначала база данных] вы используете, вы можете просто использовать Table3.Table1Collection и Table3.Свойства Table2Collection, которые сначала нужно привязать к контексту, а затем сохранить изменения.

Надеюсь, это поможет