У меня есть модель, которая выглядит примерно так:
public class Order
{
public int Id { get; set; }
public string Name { get; set; }
public int TypeId { get; set; }
public string TypeName { get; set; }
}
Id, Name и TypeId хранятся в одной таблице, а TypeName хранится в другой, поскольку оно будет использоваться в нескольких местах. Это отношение «1 ко многим, где TypeId является внешним ключом.
Таблица типов содержит только идентификатор и имя».Я хочу знать, можно ли получить TypeName без необходимости создания другого класса для представления другой таблицы. И желательно, чтобы это можно было сделать как часть конфигурации типа объекта, чтобы мне не приходилось включать его каждый раз.
Я попробовал поэкспериментировать с .SplitToTable() но не смог заставить его работать. То же самое и с .HasOne().
Моя лучшая попытка использования .SplitToTable()
public void Configure(EntityTypeBuilder builder)
{
// Relevant part of file
builder.ToTable("Orders");
builder.HasKey(x => x.Id);
builder.Property(x => x.ResourceTypeId);
builder.SplitToTable("Types", tb =>
{
tb.Property(x => x.TypeName).HasColumnName("Name");
});
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... odel-class