Как я могу добавить в мою сущность таблицу с составным первичным ключом в C #? - PullRequest
1 голос
/ 01 ноября 2019

Я программирую приложение для маркета, используя SQL Server. Я использую некоторые таблицы, и две из них Purchase и Products с отношением «многие ко многим» между ними.

Я создал еще одну таблицу PurchaseProduct для их соединения. PurchaseProduct имеет два столбца ProductId и PurchaseId, которые связаны с двумя другими таблицами;эта соединительная таблица имеет составной первичный ключ, включающий оба столбца.

Затем я попытался добавить эти таблицы в мою модель данных сущностей в моем приложении Winforms. Он добавил Purchase и Products, но не PurchaseProduct.

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

Кстати, я использую Db First, а не Code First.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

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

public class PurchaseProduct
{
    [Key, Column(Order = 0)]
    public string ProductsId { get; set; }

    [Key, Column(Order = 1)]
    public int PurchaseId { get; set; }
}
0 голосов
/ 01 ноября 2019

Так работает EF - и это хорошая вещь!

По сути, и ваши классы моделей для продуктов, и для покупок должны иметь свойство типа ICollection<T> для другого объекта. - класс Products обладает свойством всех своих покупок, и наоборот.

Так что, если вы хотите продукты данной покупки - найдите эту покупку, а затем посмотрите в свойстве Productsэтот класс, и он должен содержать все продукты для этой покупки.

EF "скрывает" эту реляционную "таблицу соединений", поскольку на самом деле это всего лишь помощник (или некоторые могут назвать его клуджем) в реляционных базах данных, чтобы сделатьвозможны отношения многие ко многим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...