Обновление объекта связанными объектами с EntityFramework 6 - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь сначала интегрировать базу данных EF6 в проект, который использует устаревший sql.У меня проблема со следующими таблицами:

Product(ID, Name) -- this translates to a Product entity
User(ID, Name) -- this translates to a User entity
UserXProduct(UserID, ProductID) -- this translates into navigational properties

Обратите внимание, что я не могу получить доступ к таблице UserXProduct через структуру сущностей, потому что она как-то не генерирует новую таблицу, только навигационные свойства.Я использую следующий код для обновления таблицы:

var entity = ctx.User.SingleOrDefault(rec => rec.ID == updRec.ID);
if(entity != null){
    entity.Product = ctx.Product.Where(rec => updRec.ProductIDs.Contains(rec.ID)).ToList();
    ctx.SaveChanges();
}

Это работает первый раз, когда запись пользователя не имеет каких-либо продуктов, связанных с ней, когда я добавляю другой продукт в список, онавыходит из строя.

SQL Profiler показывает, что Entity Framework пытается ВСТАВИТЬ UserID и ProductID в таблицу UserXProduct, не только новую, но и все.Следует либо удалить предыдущие подключения, либо вставить только новые.Как я могу добиться такого поведения?

...