Операции над данными в MySQL при добавлении строки с использованием Entity Framework Core

Одно из требований заказчика заключается в том, чтобы при выставлении счетов на оплату, счёт был в формате ХХ 000 000 000, где ХХ - некоторый код, который указывает на информацию о клиенте (задумка в том, что только взглянув на счёт, можно было определить, в какой категории клиентов находится владелец счёта), а нули - просто число, получаемое авто-инкрементом. И вот встаёт вопрос о том, как это реализовать:

Программа пишется на asp.net core, БД MySQL, для общения с БД используется entity framework core.

То, как я это пока представляю, немного попахивает костылями:
Сделать 2 поля: InvoiceId и InvoiceNumber;
Счёт создавать так, что сначала заполнить сам счёт;
затем добавить его в БД;
получить авто-инкремент для InvoiceId;
заполнить InvoiceNumber, добавив к InvoiceId в начало ХХ;
и затем записать изменения в БД.

Главная проблема, какую я тут вижу - в БД придётся дважды делать SaveChanges() - 1 раз для получения InvoiceId, и второй для записи InvoiceNumber.

Есть ли какой-нибудь способ не совершать дополнительное обращение к БД? Быть может, можно это форматирование возложить на плечи самой MySQL?


Ответы (0 шт):