我有一个带有导航属性和关联外键属性的模型,如下所示:
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
需要设置为空,而不是零,实体框架才能正确保存。
查看 Breeze 代码,当导航属性设置为 null 时,外键属性设置为目标对象的 key property的默认值,在上面的示例中是默认值Teacher.Id
(为零)。相反,我认为应该将外键属性设置为它自己的默认值。我已经为此提交了一个拉取请求。