Проблема с первичным ключом Entity Framework Core 5

У меня есть база данных SQL с представлением ServersAndServices.

Я добавил это в свою модель данных:

public class ServersAndServices
{
    public string ServerName { get; set; }
    public string ServiceName { get; set; }
    public string ServiceDisp { get; set; }
    public string RoleDesc { get; set; }
    public string AppName { get; set; }
    public string AppDesc { get; set; }
    public string Active { get; set; }
}

А это мой DbContext:

public class ServersAndServicesContext : DbContext
{
    public ServersAndServicesContext(DbContextOptions<ServersAndServicesContext> options)
        : base(options)
    {
    }

    public DbSet<ServersAndServices> ServersAndServices { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<ServersAndServices>(eb =>
            {
                eb.HasNoKey();
                eb.ToView("ServersAndServices");
            });
    }
}

Когда мне нужно добавить контроллер (контроллер API с действиями с использованием Entity Framework Core), я получаю эту ошибку:

Попытка выяснить метаданные EntityFramework для модели и DbContext: «ServersAndServices»
Первичный ключ не найден.

Я попытался сделать это также с атрибутом [Keyless] перед классом ServersAndServices, но результат тот же.

Пытаюсь понять, что я здесь делаю неправильно, поскольку вся документация, которую я видел, подсказывает, что это правильный способ справиться с этой проблемой. Спасибо.


person nashken    schedule 05.01.2021    source источник
comment
Добавить ПК в таблицу?   -  person Charlieface    schedule 05.01.2021
comment
вот документация docs.microsoft .com / en-us / ef / core / models / надеюсь, что это поможет   -  person Nonik    schedule 06.01.2021
comment
@CamiloTerevinto: true - обновил вопрос, чтобы отразить это   -  person marc_s    schedule 06.01.2021
comment
Это не имеет ничего общего с EF Core. Насколько я понимаю, эта проблема связана с некоторыми инструментами VS (добавить новый контроллер с действиями), не знаю, какие действия они должны создавать. Типы сущностей без ключа поддерживают довольно ограниченный набор действий, вероятно, не тот, который должен создавать этот инструмент.   -  person Ivan Stoev    schedule 06.01.2021
comment
проверьте файл project.cs и убедитесь, что версия ядра .net 2.0 или выше, а в контроллере api добавьте с помощью Microsoft.AspNetCore.Mvc.Razor.Compilation   -  person Laxmikant    schedule 06.01.2021


Ответы (1)


Иван был прав. Решением здесь было просто создать контроллер вручную. Иван не уверен, как отметить комментарий как правильный ответ. Спасибо.

person nashken    schedule 12.01.2021