Ниже приведены допустимые способы регистрации преобразований значений (фрагменты взяты из здесь ):
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<Rider>()
.Property(e => e.Mount)
.HasConversion(
v => v.ToString(),
v => (EquineBeast)Enum.Parse(typeof(EquineBeast), v));
}
и
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var converter = new ValueConverter<EquineBeast, string>(
v => v.ToString(),
v => (EquineBeast)Enum.Parse(typeof(EquineBeast), v));
modelBuilder
.Entity<Rider>()
.Property(e => e.SecondaryMount)
.HasConversion(converter);
}
Мой вопрос:
- Если я хотел бы зарегистрировать несколько преобразований значений для одного и того же типа (точно так же, как приведенные выше фрагменты), как я могу сделать это в одной строке?
Например, яожидал, что сработает следующее, но оно не .
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var converter = new ValueConverter<EquineBeast, string>(
v => v.ToString(),
v => (EquineBeast)Enum.Parse(typeof(EquineBeast), v));
modelBuilder
.Entity<Rider>()
.Property(e => e.Mount)
.HasConversion(
v => v.ToString(),
v => (EquineBeast)Enum.Parse(typeof(EquineBeast), v))
.Property(e => e.SecondaryMount) // doesn't work; can't append another property registration
.HasConversion(converter);
}