我看到了关于这个主题的其他一些帖子,但我还没有得到正确的答案(我敢肯定是我自己的错)但我想为数据库做种,我已经建立了多对多的关系,但是我不知道如何用第一个实体 ID 播种第二个实体。
var users = new List<User>()
{
new User()
{
Id = 1,
FirstName = "Clark",
LastName = "Kent"
},
new User()
{
Id = 2,
FirstName = "Lex",
LastName = "Luther"
}
};
users.ForEach(p => context.Users.Add(p));
var messages = new List<Message>()
{
new Message()
{
Id = 1,
SenderId = 2,
Recipients = new List<User> { Id = 2, Id = 3} // <<< Problem is here
}
}
messages.ForEach(p => context.Messages.Add(p));
base.Seed(context);
我的消息类。
public class Message
{
public int Id { get; set; }
public int SenderId { get; set; }
public int RecipientsId { get; set; }
public virtual User Sender { get; set; }
public virtual ICollection<User> Recipients { get; set; }
}
我的用户类。
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<Message> Messages { get; set; }
}
需要明确的是 - 我可以正确地为用户播种,如果有任何拼写错误或复制粘贴错误,它们并不是什么大问题,因为我知道除了能够创建已经播种的收件人列表之外一切正常。
提前致谢