我有一张User
桌子和一张Avatar
桌子。一个用户可以有多个头像(或为空)。但是我需要标记哪个头像是当前的,所以我Avatar_Id
在 User 表中有一个是当前头像。Avatar 中的 ForeignKeyUser_Id
告诉我哪个用户是所有者。
当我尝试填充一些数据以测试关系时,尝试这样做会产生很多错误和头痛。
public class User
{
[Key]
public int Id { get; set; }
public Avatar Avatar { get; set; }
public virtual ICollection<Avatar> Avatars { get; set; }
}
public class Avatar
{
[Key, ForeignKey("User")]
public int Id { get; set; }
public User User { get; set; }
}
测试部分:
var user = new User();
var avatar = new Avatar()
{
User = user
};
// user.Avatar = avatar; // <- this gives [a circular] error; without this I have null.
db.Users.Add(user);
db.Avatars.Add(avatar);
db.SaveChanges();
这导致我Avatar_Id = NULL
在User
表内和表User_Id = NULL
内Avatar
。我希望这些字段已填充(嗯,Avatar_Id
可以为空)。