【发布时间】:2018-08-19 19:09:12
【问题描述】:
我在使用 Entity Framework Core 创建数据库时使用 Code First 方法。我想创建两个指向同一个表的外键。 我的示例显示了将保存 userID 的 User 表和保存 Receiver ID 和 Sender ID 的 Message 表(这意味着两个值必须指向同一个表)。
用户代码:
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string UserName { get; set; }
[Required]
[MaxLength(50)]
public string Password { get; set; }
public virtual ICollection<Message> MessagesSent { get; set; }
public virtual ICollection<Message> MessagesReceived { get; set; }
}
留言:
public class Message
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public User Sender { get; set; }
public User Receiver { get; set; }
public int senderId { get; set; }
public int receiverId { get; set; }
[MaxLength(500)]
public string message { get; set; }
}
我正在使用 ASP.NET Core 2,我是新手。 我试图使用this 解决方案,但不幸的是,我无法覆盖 OnModelCreating 方法。它表明它不存在。
PS。不要介意密码字段,它仅用于测试目的。
谢谢!
【问题讨论】:
-
当然有
OnModelCreating。只是 EF Core 方法签名不同。所以流畅的API。您需要的一切都在文档的Relationships 部分进行了说明。
标签: asp.net entity-framework asp.net-core entity-framework-core asp.net-core-2.0