Entity Framework - многие отношения «многие ко многим» - PullRequest
0 голосов
/ 22 января 2012

Я пытаюсь использовать EF, чтобы связать продукты с транзакциями.В настоящее время это позволяет мне сопоставлять одну и ту же транзакцию с продуктом только один раз.

Например, в транзакции попытка добавить два одинаковых продукта не работает.Он будет хранить только одно отображение?

Возможно ли это сделать?Или мне просто создать обходной путь?

1 Ответ

1 голос
/ 22 января 2012

EF не позволяет вам добавлять дубликаты во многие ко многим отношениям. Таблица объединения должна содержать только первичные ключи участвующих таблиц в качестве PK таблицы.

Эту проблему можно обойти, сопоставив таблицу соединения как сущность и создав автоматически идентифицируемый идентификатор в качестве PK таблицы соединения.

public class ProductTransaction
{
    [Key]
    public int Id { get; set; }

    public int ProductId { get; set; }

    public int TransactionId { get; set; }

    public Product Product { get; set; }

    public Transaction Transaction { get; set; }
}

public class Product
{
    [Key]
    public int Id { get; set; }

    public virtual ICollection<ProductTransaction> Transactions { get; set; }
}

public class Transaction
{
    [Key]
    public int Id { get; set; }

    public virtual ICollection<ProductTransaction> Products { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...