【发布时间】:2022-01-21 21:26:25
【问题描述】:
我一直在开发一个 C# ASP.NET Core 应用程序,我目前正在使用 SQL Server 对象资源管理器来开发数据库。我想显示某些硬编码数据作为测试,但是当我尝试运行该页面时,出现此错误
System.InvalidOperationException: '实体类型'recent_health_issue' 需要定义一个主键。如果您打算使用无密钥实体类型,请在“OnModelCreating”中调用“HasNoKey”
我的主键已经定义了,显示页面正常工作,没有那行错误代码,所以这里我不确定。
我的数据库:
模型类:
public class recent_health_issue
{
[Required, MinLength(3, ErrorMessage = "Enter at least 3 characters"),
MaxLength(5)]
public string recent_id { get; set; }
[Required, MaxLength(25)]
public string recent_name { get; set; }
[Required, EmailAddress]
public string recent_email { get; set; }
[Required]
public string recent_description { get; set; }
}
我的DbContext:
public class RecentHealthIssueDBContext : DbContext
{
private readonly IConfiguration _config;
public RecentHealthIssueDBContext(IConfiguration configuration)
{
_config = configuration;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string connectionString = _config.GetConnectionString("MyConn");
optionsBuilder.UseSqlServer(connectionString);
}
public DbSet<recent_health_issue> HealthIssues { get; set; }
}
我的控制器(发生错误的地方):
public class RecentHealthController
{
private RecentHealthIssueDBContext _context;
public RecentHealthController(RecentHealthIssueDBContext context)
{
_context = context;
}
public List<recent_health_issue> getAllRecentHealthIssues()
{
List<recent_health_issue> AllRecentHealth = new List<recent_health_issue>();
// error occured here
AllRecentHealth = _context.HealthIssues.ToList();
return AllRecentHealth;
}
public recent_health_issue getRecentHealthIssueById(String id)
{
recent_health_issue RecentHealthIssue = new recent_health_issue();
return RecentHealthIssue;
}
}
【问题讨论】:
-
请也发布recent_health_issue 课程。
-
您是否为那个类定义了主键?
-
@GáborAngyal 已编辑,请检查。
-
@HansKesting 在recent_health_issue 类中吗?
-
@user15930341 是的,我的意思是那个类。您的编辑显示
recent_id是[Required]但不是[Key]- 所以添加
标签: c# asp.net-core