📅  最后修改于: 2023-12-03 15:09:26.827000             🧑  作者: Mango
在 Entity Framework Core 中,定义实体类型时必须指定一个主键。但是,有时候我们需要的实体类型并没有一个明显的主键属性。这时候,我们可以使用无主键的实体类型。
一个实体类型是无主键的,当它没有一个主键属性,或者多个属性组合也无法唯一地标识一个实体。
在 Entity Framework Core 中,我们可以通过调用 HasNoKey()
方法告诉 EF Core 我们的实体类型是无主键的。
在定义实体类型时,将实体类型继承 Microsoft.AspNetCore.Identity.IdentityUserLogin<int>
类型,并且在 OnModelCreating
方法中调用 HasNoKey()
方法:
public class MyUserLogin : IdentityUserLogin<int>
{
// ...
}
public class MyDbContext : DbContext
{
public DbSet<MyUserLogin> MyUserLogins { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyUserLogin>(entity =>
{
entity.HasNoKey();
});
}
}
FromSqlRaw
或 Queryable
查询。AsNoTracking()
方法。更多关于无主键实体类型的信息可以查看 官方文档。