У меня есть требование генерировать уникальный идентификатор для каждой записи данного объекта. Я использую Cosmos DB, где одна коллекция может содержать несколько типов документов (сущностей).
Используя EF Core, поставщика Cosmos DB, я обновляю эти коллекции новыми / обновленными данными, все работает гладко, когда EF Core генерирует хорошие GUID для полей идентификаторов моих сущностей.
Теперь, поскольку некоторые сущности участвуют в общении с клиентом, мне нужен способ генерировать «дружественные» уникальные номера для каждой сущности. Примером является номер счета, который следует определенному формату, например ГГГГ - ###### (например, 2019-000001).
Этот формат определен для типа объекта, и уникальность:
- для типа объекта (который является полем в документе)
- за коллекцию
Как настроить EF Core на использование генератора пользовательских числовых форматов при сохранении объекта? Одним из подходов, о котором я думал, было создание UDF в Cosmos, который генерирует число на основе формата, но я боюсь, что мне потребуется запросить документ после сохранения, так как EF Core не будет иметь никакого представления о значении это поле.