Можно ли в EF Core 8 назначить внешнему ключу дополнительное ограничение для подмножества таблицы внешнего ключа?C#

Место общения программистов C#
Ответить
Anonymous
 Можно ли в EF Core 8 назначить внешнему ключу дополнительное ограничение для подмножества таблицы внешнего ключа?

Сообщение Anonymous »

У меня есть набор таблиц, которые содержат то, что я называю списками литературы. По сути, таблицы содержат коллекцию перечислений, но я хочу, чтобы они хранились в базе данных, а не в коде, чтобы я мог использовать значения в приложениях, которые не используют EF - например, инструмент отчетности и т. д...
Упрощенная структура:
Table RefType:

Код: Выделить всё

  int RefTypeId PK
string Code
string Description
Таблица RefItem:

Код: Выделить всё

  int RefItemId PK
int RefTypeId FK
string Code
string Description
данные примера таблицы:

Код: Выделить всё

RefTypeId     Code             Description
--------------------------------------------------------
1             'FILESTATUS'     'Status of the file'
2             'RECORDSTATUS'   'Status of the record'
данные примера таблицы:

Код: Выделить всё

RefItemId    RefTypeId   Code         Description
------------------------------------------------------------------------
1            1           'READY'      'The file is ready to be processed'
2            1           'PROCESSED'  'The file has been processed'
3            2           'READY'      'The record is ready to be processed'
4            2           'PROCESSED'  'The record has been processed'
5            1           'ERROR'      'The file has an error'
6            2           'FAILED'     'The record has failed processing'
Мой вопрос: возможно ли в EF Core 8 создать связь внешнего ключа, которая ссылается на столбец RefItem.RefItemId, но дополнительно ограничена подмножеством принадлежащих ключей к определенному RefType?
Например, в таблице, в которой хранятся сведения о файлах, я хотел бы иметь внешний ключ к таблице RefItem, RefItemId столбец , но только там, где RefItem.RefTypeId == 1.
Аналогично в таблице, хранящей сведения о записях, внешний ключ к RefItem таблица, столбец RefItemId, должна быть ограничена значением RefItem.RefTypeId == 2.
Спасибо!
P.

Подробнее здесь: https://stackoverflow.com/questions/786 ... o-a-subset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»