我有一个实体user
,其中包含以下内容:
public class User
{
[Key, Required]
public int Id { get; set; }
public int GenderId { get; set; }
public virtual Gender Gender { get; set; }
}
在性别
方面:
public class Gender
{
[Key, Required]
public int Id { get; set; }
public virtual ICollection<User> Users { get; set; }
}
然后,在我的DbContext
内部,我有:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>(user =>
{
user
.HasOne(x => x.Gender)
.WithMany(x => x.Users)
.HasForeignKey(x => x.GenderId);
}
user.HasIndex(x => x.Gender);
}
当我运行dotnet ef add migration User
时,出现错误:'Gender'不能用作实体类型'User'上的属性,因为它被配置为导航。
.Property(x => x.Gender)
或类似的问题。 - Ivan Stoevuser.HasIndex(x => x.Gender);
我试图在一个导航属性上创建索引。我不得不将其更改为user.HasIndex(x => x.GenderId);
。 - Nimish David Mathew