Ответ 1
Да, вы можете достичь этого с помощью свободного API. Вот пример:
public class User
{
public int UserId { get; set; }
public Address Address { get; set; }
}
public class Customer
{
public int CustomerId { get; set; }
public Address Address { get; set; }
}
[ComplexType]
public class Address
{
public string Street { get; set; }
public string City { get; set; }
}
public class Context : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Customer> Customers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().Property(u => u.Address.Street)
.HasColumnName("UserStreet");
modelBuilder.Entity<Customer>().Property(u => u.Address.Street)
.HasColumnName("CustomerStreet");
}
}