我知道这个问题已被多次询问,但是当将对象添加到另一个对象的集合时,没有一个答案足够清楚地理解实体出了什么问题。
我使用代码优先方法启动实体。这是我的代码:
var user1 = new User("user1");
var user2 = new User("user2");
context.Users.Add(user1);
context.Users.Add(user2);
// Followers
user1.Followers.Add(_followerAccessor.CreateFollower(user2));
context.SaveChanges(); // EXCEPTION HAPPENS HERE
类
public class Follower
{
public long Id { get; set; }
public virtual User User { get; set; }
public virtual Permission FollowerPermissions { get; set; }
}
public class User
{
public User()
{
Events = new List<Event>();
Followers = new List<Follower>();
}
public long Id { get; set; }
public string Name { get; set; }
// One to Many
public virtual ICollection<Follower> Followers { get; set; }
}
public class Permission
{
public long Id { get; set; }
public bool CanDoSmthg { get; set; }
}
非常感谢任何帮助。