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 不确定如何将评论标记为正确答案。谢谢。
我有一个现有的 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 不确定如何将评论标记为正确答案。谢谢。