【发布时间】:2019-09-04 18:04:15
【问题描述】:
我想在 ASP.NET Core 中创建这个数据库架构:
我已经用这段代码试过了,但没有成功。
用户
public class User : IdentityUser
{
public override string Id { get; set; }
public virtual UserVisitors Visitors { get; set; }
}
用户访问者
public class UserVisitors
{
public int Id { get; set; }
public string UserId { get; set; }
public string UserVisitorId { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public DateTime VisitTime { get; set; }
[ForeignKey("UserId")]
public virtual User User { get; set; }
[ForeignKey("UserVisitorId")]
public virtual User UserVisitor { get; set; }
}
我在迁移时遇到此错误:
无法确定“UserVisitor”类型的导航属性 >“User.Visitors”表示的关系。手动配置 >relationship,或使用“[NotMapped]”属性忽略此属性,或 >通过在“OnModelCreating”中使用“EntityTypeBuilder.Ignore”。
我希望有人可以帮助我。提前致谢。
更新:
将UserVisitors 更改为:
public class UserVisitors
{
public int Id { get; set; }
[InverseProperty("User")]
public string UserId { get; set; }
[InverseProperty("User")]
public string UserVisitorId { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public DateTime VisitTime { get; set; }
public virtual User User { get; set; }
}
UserVisitorId 列与User.UserID 没有关系。
【问题讨论】:
-
User.Visitors的类型不应该是ICollection<UserVisitors>吗?看起来您可以为一位用户在UserVisitors中拥有多个条目。
标签: c# asp.net-core entity-framework-core