Переопределить генераторы ценностей EF CoreC#

Место общения программистов C#
Ответить
Anonymous
 Переопределить генераторы ценностей EF Core

Сообщение Anonymous »

Я хочу переопределить GuidValueGenerator по умолчанию, чтобы он использовал метод Guid.CreateVersion7() вместо Guid.NewGuid().
Я попытался установить собственный генератор значений для каждого свойства Guid, перебирающего метаданные построителя моделей, и это работает.

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

public static void SetValueGeneratorOnAdd(this ModelBuilder builder, string columnName, ValueGenerator generator)
{
var clrType = typeof(T);

var properties = builder.Model.GetEntityTypes().SelectMany(
entity => entity.GetProperties().Where(
property => property.Name.Equals(columnName, StringComparison.Ordinal)
&& property.ClrType == clrType));

foreach (var property in properties)
{
property.ValueGenerated = ValueGenerated.OnAdd;
property.SetValueGeneratorFactory((prop, type) => generator);
}
}
Но я думаю, что замена генератора значений по умолчанию — гораздо более эффективный способ.
  • Как я могу заменить/переопределить значение по умолчанию генератор значений в EF Core на этапе настройки модели EF?
  • Может быть, есть какой-то поставщик услуг для создания сервисов EF или что-то в этом роде?


Подробнее здесь: https://stackoverflow.com/questions/790 ... generators
Ответить

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

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

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

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

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