Sql server 如何修复';实体类型需要定义主键;ASP.Net内核中出现错误
我正在使用代码优先的方法建立一个新的数据库。在我用模型的键属性定义了模型之后,它仍然无法找到模型的主键 我尝试使用传统的“Id”命名和[Key]属性 我的一个模型就是这个Sql server 如何修复';实体类型需要定义主键;ASP.Net内核中出现错误,sql-server,asp.net-core,Sql Server,Asp.net Core,我正在使用代码优先的方法建立一个新的数据库。在我用模型的键属性定义了模型之后,它仍然无法找到模型的主键 我尝试使用传统的“Id”命名和[Key]属性 我的一个模型就是这个 public class Band { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id; public Institution Institution; public BandName
public class Band
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id;
public Institution Institution;
public BandName BandName;
}
上下文的代码是
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Band> bands { get; set; }
}
您需要将getter和setter添加到您的Id中 您的类应该如下所示:
public class Band
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public Institution Institution { get; set; }
public BandName BandName { get; set; }
}
EF core需要有一个setter来设置从数据库读取数据并填充数据集的时间。
还要考虑为其他类属性添加getter和setter(正如我在您的示例中添加的那样)
注意:私有setter也可以工作public long Id{get;private set;}
public class Band
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public Institution Institution { get; set; }
public BandName BandName { get; set; }
}