Подключение сопоставленных и не сопоставленных объектов с ядром EF в .NET 5

#c# #asp.net #.net #entity-framework #entity-framework-core

Вопрос:

У меня есть два класса сущностей под названием Проект и организация. Они имеют отношение «один ко многим» и отображаются как:

 public class Project
{
    public int Id { get; set; }

    public string Name { get; set; }
 
    public ICollection<Organization> Organizations { get; set; }
    
    //..other attributes ....
}

public class Organization
{
    public int Id { get; set; }

    public int ProjectId { get; set; }

    public Project Project { get; set; }
}
 

И в создании моделей:

 builder.Entity<Organization>()
            .HasOne(x => x.Project)
            .WithMany(x => x.Organizations)
            .HasForeignKey(x => x.ProjectId);
 

Теперь я создал проект как не отображенную сущность, которая в основном такая же, как проект, но с меньшим количеством атрибутов. Это то, что я добавил в OnModelCreating:

 builder.Entity<ProjectDto>()
            .ToSqlQuery("[some query as a string]")
            .ToTable("ProjectDto", t => t.ExcludeFromMigrations());
 

Я не хочу, чтобы эта сущность создавалась при миграции. Что я хочу сделать сейчас, так это запросить этот проект. Я могу сделать это, если я запрашиваю только для ProjectDto, но не для организации.
Как мне «подключить» этот проект к сущности Организации, чтобы я мог включить Организации в свой запрос?

мой код запроса, который работает и возвращает проект в обычном режиме:

 return await _context.ProjectDto.ToListAsync();
 

мой запрос, который возвращает ошибку

 return await _context.ProjectDto.Include(x => x.Organizations).ToListAsync();
 

я получил сообщение об ошибке «Недопустимое имя столбца «ProjectDtoId»».

Я пробовал другие вещи, такие как добавление атрибутов ProjectDtoId и ProjectDto в класс организации и сопоставление их с методом OnModelCreating, но я все равно получаю ту же ошибку.