【发布时间】:2016-08-05 05:50:55
【问题描述】:
我有一个具有复合主键的实体,它模拟了多对多关系:
public class ActualAnswer
{
[Key]
[Column(Order = 0)]
public int AnsweredQuestionID { get; set; }
[Key]
[Column(Order = 1)]
public int AnswerID { get; set; }
}
如果我使用 Breeze 在我的客户端应用程序中删除这些实体之一,它的状态将设置为已删除:
function deleteEntity(entity) {
var ea = entity.entityAspect;
ea.setDeleted();
}
如果用户改变主意,我目前正在尝试重新创建实体:
createEntity("ActualAnswer", {
AnsweredQuestionID: answeredquestionid,
AnswerID: answerid
});
使用我的 Breeze EntityManager 调用此函数:
function createEntity(entityType, initialValues) {
var entity = manager.createEntity(entityType, initialValues)
return entity;
}
但是,这会导致错误:
“不允许”的 MergeStrategy 不允许您附加实体 当已附加具有相同密钥的实体时: 实际答案:#etc
确实,我们已经有一个具有相同键的实体 - 但它处于“已删除”状态。
那么,我怎样才能找回它并取消删除它呢?
或者,我可以安全地使用不同的合并策略吗?我需要注意哪些陷阱?我可以通过仅对这个特定实体使用合并策略来最小化风险吗?
【问题讨论】:
标签: breeze