Я использую EF6, некоторые путаницы при посеве много-много отношений.EF 6 - много-ко-многим - Присоедините таблицу без дубликатов
У меня есть следующие:
User
имеет многие сохранены ChartQueries
(которые они могут выполнить, чтобы получить диаграмму). A ChartQuery
обычно принадлежит только одному пользователю, но существует несколько «общих» ChartQuery
s, которые могут выполнять каждый User
. В результате я установил для многих отношений, используя таблицу соединений UserChartQuery
. Таблицы находятся в базе данных только в порядке от 1 до многих с каждой стороны таблицы соединений.
Однако я не совсем понимаю, как использовать семена или использовать эти отношения. Я не хочу приводить несколько дубликатов «общего» ChartQuery
s (дубликат для каждого User
). Вместо этого должна быть только одна строка для каждого «общего» ChartQuery
, которая является частью каждой коллекции User
SavedChartQueries
(вместе с другими, не разделяемыми ChartQuery
s, которые принадлежат этому User
).
Похоже, я вынужден дублировать для каждого пользователя:
var sharedChartQuery = new ChartQuery { ... };
var nonSharedChartQuery = new ChartQuery { ... };
var userOneChartQueryOne = new UserChartQuery { User = userOne, ChartQuery = sharedChartQuery };
var userTwoChartQueryOne = new UserChartQuery { User = userTwo, ChartQuery = sharedChartQuery };
var userTwoChartQueryTwo = new UserChartQuery { User = userTwo, ChartQuery = nonSharedChartQuery };
context.UserChartQueries.Add(userOneChartQueryOne);
context.UserChartQueries.Add(userOneChartQueryTwo);
context.UserChartQueries.Add(userTwoChartQueryTwo);
Так что прежде всего это правильный путь к семени (через UserChartQueries таблицы непосредственно), или я должен семя SavedChartQueries каждый User
«s навигационное свойство?
И будет ли этот результат дублироваться в таблице соединений для каждого User
? Если это так, то можно избежать этого?