2016-12-23 34 views

回答

0

你不想混乱的导航属性 - 我会马上告诉你。我的建议是模拟你的问题,就好像你必须使用T-SQL一样。

在T-SQL中,你可以删除一个父记录,但留下孩子吗?不,我是说你可以,但为什么?您只是在数据库中创建了孤儿子记录。你打算删除外键但保留数据吗?真是一团糟。

您能够在Breeze中映射父子关系的唯一原因是基于数据库中定义的父/子关系创建的导航属性。如果你不能在数据库中完成,你不能在Breeze中完成。

如果模型拒绝预算,并且您决定继续这样做,您需要返回未通过关系链接的数据。您可以为父母和子女创建一个视图...但您需要手动管理该负载。如果你的实体基于一个视图,他们可能不会是可更新的。

对不起,没有可发布的代码。我很久以前就放弃了这个。

0

如果删除父项,Breeze不会将子实体标记为已删除。我们还没有在Breeze中实现级联删除。你必须在你的应用程序中有这样的代码。 Breeze通过清除外键属性将子实体与已删除的父实体断开连接,因此子实体将处于修改状态。但是,您将无法在数据库中成功保存不违反FK限制的W/O。您必须在服务器上实施级联删除或手动删除子实体。