Поддержка IEntityCache ABP для объектов с первичными ключами из нескольких столбцов - PullRequest
0 голосов
/ 29 октября 2018

Текущая реализация IEntityCache поддерживает тип первичного ключа из 1 столбца (по умолчанию int, может быть отправлен как другой тип, например, long, string).

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

  1. Измените схему таблицы и просто добавьте столбец с целочисленным идентификатором (автоинкремент), единственная цель которого состоит в том, чтобы позволить IEntityCache творить чудеса. Логика приложения, запрашивающая объект, останется нетронутой, так как он будет по-прежнему использовать уникальный индекс из 2 столбцов. Однако изменение схемы не может быть вариантом, и другая проблема заключается в том, что верхние прикладные уровни (Domain, AppServices) не знают Id, который им нужно запрашивать, вместо этого они знают о 2 ключах объекта.

  2. Переписать новую реализацию IEntityCache для поддержки нескольких столбцов (например, IEntityCache<string, string>?). Не уверен, что это возможно, учитывая ограничения кешманагера?

Вот вопрос: может ли внутренняя работа ICacheManager - сама по себе абстракция над различными поставщиками кэша (например, IMemoryCache, Redis и т. Д.) - препятствовать реализации с несколькими столбцами?

...