0
我對初始化屬於集合類型的導航屬性感到困惑。在例子我在網上看到的,屬性始終明確地在類的構造函數初始化,但是在我的項目我有兩套這樣的屬性,並沒有這樣的初始化一個工作,一個不:何時初始化實體中的集合屬性?
public class User
{
public int UserId { get; set; }
[System.ComponentModel.DataAnnotations.Schema.InverseProperty("Requested")]
public virtual System.Collections.Generic.ICollection<Friendship> RequestedFriendships { get; set; }
[System.ComponentModel.DataAnnotations.Schema.InverseProperty("Received")]
public virtual System.Collections.Generic.ICollection<Message> ReceivedMessages { get; set; }
}
public class Message
{
public int MessageId { get; set; }
string Message { get; set; }
public virtual System.Collections.Generic.ICollection<User> Received { get; set; }
}
public class Friendship
{
public int FriendshipId { get; set; }
public int RequestedUserId { get; set; }
public virtual User Requested { get; set; }
}
以下工作:
db.Users.Single(u => u.UserId == userId).RequestedFriendships.Add(new B.Models.Friendship
{
RequestedUserId = userId,
});
同樣在此:
B.Models.Message message = db.Messages.Add(new B.Models.Message
{
Message = text
});
db.SaveChanges();
但是按照上述的下面失敗:
message.Received.Add(db.Users.Single(u => u.UserId == userId));
由於message.Received
是null
以上。第一個成功的有什麼不同?