Вариант 1: использовать совокупный корень или объект (агрегированный подобъект) для сопоставления таблицы.
Код: Выделить всё
public class User : AggregateRoot
{
string Name { get; }
string Email { get; }
// Logic ...
}
Код: Выделить всё
public class EntityTypeConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
// ... map props.
}
}
Код: Выделить всё
public class User : AggregateRoot
{
string Name { get; }
string Email { get; }
// Logic ...
}
public class UserTable
{
Guid Id { get; }
string Name { get; }
string Email { get; }
// No logic here ...
}
Код: Выделить всё
public class EntityTypeConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
// ... map props.
}
}
При втором подходе мне нужно написать дополнительные преобразователи между UserTable и User (возможно, используя Mapster/automapper)
Например, это будет IUserRepository с метод:
Код: Выделить всё
// Here parameter is an User but have to map into UserTable
Add(User user)
{
var entity = user.MapToUserTable();
dbContext.Users.Add(entity)
// ...
}
Подробнее здесь: https://stackoverflow.com/questions/780 ... g-table-or