使用.NET Core 3.0和EF Core(如果有影响的话)。
我正在尝试定义一个模型,其中:
我正在尝试对此建模(BaseModel具有我所有实体的公共属性),而AVUser是我的ASP.NET Identity用户类。
public abstract class BaseModel
{
public int Id { get; set; }
public DateTime LastModifiedDate { get; set; }
public DateTime CreatedDate { get; set; }
public AVUser CreatedUser { get; set; }
public AVUser ModifiedUser { get; set; }
}
public class Toy: BaseModel
{
[MaxLength(80)]
public string Name { get; set; }
}
public class AVUser : IdentityUser
{
public string FirstName { get; set; }
// The currently selected toy for the user.
public int SelectedToyId { get; set; }
public Toy SelectedToy { get; set; }
}
但是,EF Core抛出错误,指出:无法确定类型为“玩具”的导航属性“ AVUser.Toy”表示的关系。
我对此注释有麻烦,因此它知道用户可以收藏玩具,并且我想将一个玩具与用户一起存储为当前选择的玩具。
答案 0 :(得分:2)
编写模型类,如下所示:
public class Toy: BaseModel
{
[MaxLength(80)]
public string Name { get; set; }
[ForeignKey("AVUser")]
public string UserId { get; set; }
public AVUser AVUser { get; set; }
}
public class AVUser : IdentityUser
{
public string FirstName { get; set; }
// The currently selected toy for the user.
[ForeignKey("SelectedToy")]
public int SelectedToyId { get; set; }
public Toy SelectedToy { get; set; }
public ICollection<Toy> Toys {get; set;}
}
然后在OnModelCreating
的{{1}}中进行如下配置:
DbContext