我看到了這個話題的其他一些帖子,但我還沒有得到一個正確的答案(我自己的錯誤,我肯定),但我想種子數據庫和我已經建立了多對多的關係,但我無法弄清楚如何爲第一個實體標識第二個實體。播種許多到很多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