Entity Framework Core 5 主键问题

Entity Framework Core 5 primary key issue

我有一个现有的 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 核心的操作的控制器)时,我收到此错误:

Attempting to figure out the EntityFramework metadata for the model and DbContext: 'ServersAndServices'
Primary key not found.

我也尝试过在 class ServersAndServices 之前使用 [Keyless] 属性,但结果是一样的。

试图找出我在这里做错了什么,因为我看到的所有文档都表明这是应对这一挑战的正确方法。谢谢。

伊万是对的。这里的解决方案是手动创建控制器。 Ivan 不确定如何将评论标记为正确答案。谢谢。