我有一个带有导航属性和相关外键属性的模型,如下所示:
public class Teacher {
public int Id { get; set; }
}
public class Course {
public int Id { get; set; }
public int? TeacherId { get; set; } // foreign key property
public Teacher Teacher { get; set; } // navigation property
}
在客户端代码中,设置course.Teacher(null)
会导致course.TeacherId
设置为零。在保存时,这会导致实体框架中出现外键错误。
course.TeacherId
需要设置为null,而不是零,以便Entity Framework正确保存。
查看Breeze代码,当navigation属性设置为null时,外键属性设置为目标对象的键属性的默认值,在上面的示例中是默认值值Teacher.Id
(为零)。相反,我认为外键属性应该设置为自己的默认值。我已为此提交了pull request。