我看到了这个话题的其他一些帖子,但我还没有得到一个正确的答案(我自己的错误,我肯定),但我想种子数据库和我已经建立了多对多的关系,但我无法弄清楚如何为第一个实体标识第二个实体。播种许多到很多EF代码的第一个关系
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; }
}
要清楚 - 我可以正常播种的用户没有问题,如果有任何错别字或复制粘贴错误他们不是什么大不了的事,因为我知道一切工作除了能够创建列表已经播种的收件人。
在此先感谢
您是如何定义用户和消息之间的映射的? – nakchak 2013-05-08 15:57:10
EF Code First已经处理它,因为它正在生成数据库 – 2013-05-08 15:58:10
对于所有密集目的,我无法弄清楚这里出了什么问题。我尝试添加配置并映射多对多关系,但没有帮助。当我尝试设置Recipients = new List()并添加用户时,它表示ICollection 收件人是'Models.User',列表是列表。 –
2013-05-08 17:19:00