Можно ли переименовать колонки принадлежащих типов?
Есть составной тип, который я настраиваю через Fluent API вызовом OwnsOne.
В результате в БД создаться поля по шаблону {Название свойства}_{Название поля}.
Я как-то могу переопределить это поведение?
Вот пример с метанита:
using Microsoft.EntityFrameworkCore;
namespace HelloApp
{
public class User
{
public int Id { get; set; }
public string Login { get; set; }
public string Password { get; set; }
public UserProfile Profile { get; set; }
}
public class UserProfile
{
public string Name { get; set; }
public int Age { get; set; }
}
public class ApplicationContext : DbContext
{
public DbSet<User> Users { get; set; }
public ApplicationContext()
{
Database.EnsureDeleted();
Database.EnsureCreated();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=relationsdb;Trusted_Connection=True;");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().OwnsOne(u => u.Profile);
}
}
}
Ответы (1 шт):
Автор решения: Yaroslav
→ Ссылка
Как то так:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<User>()
.OwnsOne(u => u.Profile)
.Property(x => x.Name)
.HasColumnName("Name");
modelBuilder
.Entity<User>()
.OwnsOne(u => u.Profile)
.Property(x => x.Age)
.HasColumnName("Age");
}
Результат:
