When using OwnsOne to map complex types, the sql column name is prefixed with the attribute name. Is it possible to specify the prefix name in the mapping?
This is my ma
Ivan Stoev's answer from the question comments:
It has to be done through the corresponding
OwnsOne
builder action argument. e.g..OwnsOne(e => e.Address, cb => { cb.Property(e => e.Postcode).HasColumnName("Postcode"); });
(Making this a community wiki, just marking the question as being answered.)
You could write an extension method to override the names of all columns;
public static WithPrefix<T, R>(this OwnedNavigationBuilder<T, R> builder, string prefix) where T:class where R:class
{
foreach (var p in builder.OwnedEntityType.GetProperties())
p.SetColumnName($"{prefix}{p.Name}");
}
.OwnsOne(e => e.Address, cb => cb.WithPrefix(""));