Я пытаюсь сначала интегрировать базу данных 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, не только новую, но и все.Следует либо удалить предыдущие подключения, либо вставить только новые.Как я могу добиться такого поведения?