使用Telerik OpenAccess ORM我有 2 个对象User
和Investment
. 更具体地说,包含与任何典型的一对多关系一样Investments
的外键。User
换句话说,每个用户可以有多个投资,但每个投资只能有一个用户。
然后,我尝试利用开放访问功能“受管理”
这应该意味着我可以做类似的事情User.Investments.Clear();
,它会删除所有相关的投资(或者至少这在多对多关系中可以正常工作)但不幸的是,当我尝试这样做时,我遇到了以下错误。
“更新失败:Telerik.OpenAccess.RT.sql.SQLException:无法将值 NULL 插入 'UserID' 列,表 'CODECorp.dbo.Investment';列不允许空值。更新失败。”
很明显,ORM 试图做的是将投资对象与用户的关联(即外键)删除,而不是删除它。我已经通过运行 SQL 探查器确认了这一点,并且可以看到它正在运行Update
而不是Delete
.
那么我在这里错过了什么?为什么它错误地尝试删除关联,而不是像您期望的那样简单地删除行?