У меня есть следующая модель данных:
![Data Model](https://i.stack.imgur.com/XWDYZ.png)
У клиента есть продукты и способы оплаты.Каждому продукту может быть назначен любой или все методы оплаты клиента, с одним из них по умолчанию.
Иностранные ключи:
Customer.CustomerId => Product.CustomerId
Customer.CustomerId => PaymentMethod.CustomerId
Product.ProductId => ProductPaymentMethod.ProductId
PaymentMethod.PaymentMethodId => ProductPaymentMethod.PaymentMethodId
Я хочу настроить эту модель для целей презентации, клиентиметь коллекцию способов оплаты и коллекцию продуктов.Продукты, имеющие коллекцию ProductPaymentMethods, которая наследуется от PaymentMethod.
Я удалил связь между PaymentMethod и ProductPaymentMethod, добавил наследование от PaymentMethod к ProductPaymentMethod и удалил PaymentMethodId из ProductPaymentMethod.
Теперь это моя модель:
![Presentation Model](https://i.stack.imgur.com/E6bqi.png)
Когда я сохраняю модель или строю проект, я получаю 2 ошибки:
Ошибка 3002. Проблема при сопоставлении фрагментов, начинающихся со строки 226. Потенциальное нарушение среды выполнения ключей таблицы ProductPaymentMethod (ProductPaymentMethod.ProductPaymentMethodId): столбцы (ProductPaymentMethod.ProductPaymentMethodId) сопоставляются со свойствами EntitySet PaymentMethods PaymentMethods, которые используют в качестве метода оплаты.сформировать ключевые свойства EntitySet (PaymentMethods.PaymentMethodId).
и
Ошибка 3003: проблема в сопоставлении фрагментов, начиная со строки 226: все ключевые свойства (PaymentMethods.PaymentMethodId) методов оплаты EntitySet должны быть сопоставлены со всеми ключевыми свойствами (ProductPaymentMethod.ProductPaymentMethodId) таблицы ProductPaymentMethod.
Что я делаю неправильно?
РЕДАКТИРОВАТЬ: Сделав еще несколько Google, яи несколько решений, большинство из которых не совсем соответствуют этому сценарию.Большинство говорят о наследовании, требующем отношения 1-1, а не 1-много.Однако из-за связи между клиентом и продуктом 1-многие модели требуется 1-много между PaymentMethod и ProfilePaymentMethod.Разве нельзя делать то, что я пытаюсь?