-1

У меня есть ниже таблица только два столбца с совмещенным первичным ключомКак вставить/удалить запись в хранилище образами единицы структуры объекта работы с совмещенным первичным ключом

Таблица Названием: ProductByUser

колонке 1: PRODUCTID (FK Ref табл.) продукта

Колонка 2:USERID (FK Ссылка , для пользователя таблицы)

Дополнительная информация: В EDMX также я не могу, чтобы просмотреть эту таблицу, но это показывает прямую связь между продуктом & User Table.

Я знаю, как удалить или вставить запись в эту таблицу. Поскольку я не могу напрямую создать объект этой таблицы. Так любезно наставляйте меня на то же самое.

ответ

0

Наконец получил выход, Надеюсь, что это поможет кто-то в будущем,

void Insert(Product product, int intUserId) 
    { 
    _unitofWork.Db.Entry(product).Collection(i => i.Users).Load(); 

     UserRepository userRepo = new UserRepository(_unitofWork); 

    product.Users.Add(userRepo.GetAll().FirstOrDefault(U => U.UserID == intUserId)); 

    } 

Для удаления

product.Users.Remove(userRepo.GetAll().FirstOrDefault(U => U.UserID == intUserId)); 
0

Попробуйте это:

public class ProductByUser // Many to many table implemented as entity 
{ 
    public int ProductId { get; set; } 
    public int UserId { get; set; } 

    public virtual ICollection<Product> Products { get; set; } 
    public virtual ICollection<User> Users { get; set; } 
} 


protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<ProductByUser>() 
     .HasKey(c => new { c.ProductId , c.UserId }); 

    modelBuilder.Entity<Product>() 
     .HasMany(c => c.ProductUsers) 
     .WithRequired() 
     .HasForeignKey(c => c.ProductId); 

    modelBuilder.Entity<User>() 
     .HasMany(c => c.ProductUsers) 
     .WithRequired() 
     .HasForeignKey(c => c.UserId); 
} 
+0

Спасибо Univ за ответы, я попробуйте сделать это, но я получаю следующую ошибку. Дополнительная информация: Тип объекта ProductByUser не является частью модели для текущей контекст. –

+0

Вы сопоставляли каждую сущность с таблицей? Например, для ProductByUser вам необходимо: modelBuilder.Entity (). ToTable («ProductByUser»); – univ

+0

Не согласны ли вы использовать код конфигурации сущности, который у вас есть для этих трех объектов? – univ