Как определить два внешних ключа, которые не являются составными с аннотациями данных в базе данных первого EF? - PullRequest
0 голосов
/ 04 января 2019

В SQL у меня есть таблица с двумя столбцами, которые отображаются в один и тот же первичный ключ в другой таблице.Самый простой способ объяснить это - использовать ограничения таблицы:

ALTER TABLE [dbo].[sls_n_Promotion]  WITH CHECK ADD  CONSTRAINT [FK_SlsPromotion_SlsPromotionTradeSpendType] FOREIGN KEY([TradeSpendID])
REFERENCES [dbo].[sls_a_PromotionTradeSpendType] ([ID])
GO

ALTER TABLE [dbo].[sls_n_Promotion] CHECK CONSTRAINT [FK_SlsPromotion_SlsPromotionTradeSpendType]
GO

ALTER TABLE [dbo].[sls_n_Promotion]  WITH CHECK ADD  CONSTRAINT [FK_SlsPromotion_SlsPromotionTradeSpendType2] FOREIGN KEY([TradeSpendSubID])
REFERENCES [dbo].[sls_a_PromotionTradeSpendType] ([ID])
GO

ALTER TABLE [dbo].[sls_n_Promotion] CHECK CONSTRAINT [FK_SlsPromotion_SlsPromotionTradeSpendType2]
GO

Сначала я использую базу данных, и я создал Promotion.partial.cs.В этом частичном классе я пытаюсь правильно установить атрибуты данных для TradeSpendID и TradeSpendSubID.Вот что у меня сейчас:

[Display(Name="Trade Spend Type")]
[Column("TradeSpendID")]
[ForeignKey("PromotionTradeSpendType")]
int? TradeSpendId { get; set; }

[Display(Name = "Trade Spend Sub Type")]
[Column("TradeSpendSubID")]
[ForeignKey("PromotionTradeSpendType")]
int? TradeSpendSubId { get; set; }

Когда я иду, чтобы создать контроллер с использованием скаффолдинга, я получаю ошибку:

Невозможно определить составной порядок внешнего ключа для внешнеготип ключа ...

Это не составной внешний ключ.

Вопрос: Как использовать атрибуты данных для внешних ключей этих двух свойств?

1 Ответ

0 голосов
/ 04 января 2019

Должно быть два свойства навигации.EG

[Display(Name="Trade Spend Type")]
[Column("TradeSpendID")]
[ForeignKey("PromotionTradeSpendType")]
public int? TradeSpendId { get; set; }
public virtual PromotionTradeSpendType PromotionTradeSpendType { get; set; }

[Display(Name = "Trade Spend Sub Type")]
[Column("TradeSpendSubID")]
[ForeignKey("PromotionTradeSpendSubType")]
public int? TradeSpendSubId { get; set; }
public virtual PromotionTradeSpendType PromotionTradeSpendSubType { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...