我有一个网格,数据源设置为EntitySpaces集合,并带有一个复选框列。当复选框被选中时,我想创建一个记录,当它被清除时,我想删除相同的记录。CombineDeletedEntities/SeparateDeletedEntities添加重复实体
为了避免明显的PK违规保存如果用户反复检查和取消选中项目,我试图检索以前删除的实体并将它们标记为未删除。但是,当我在集合上使用CombineDeletedEntities
和SeparateDeletedEntities
时,它会在集合中创建重复条目。
roleFunctions.CombineDeletedEntities();
// On third cycle through, this is the error line
RoleFunction foundItem = roleFunctions.FindByPrimaryKey(roleName, functionName);
if (foundItem != null)
{
foundItem.RowState = esDataRowState.Unchanged;
// Extraneous logic...
}
else
{
// Create new item...
}
roleFunctions.SeparateDeletedEntities();
所以基本上,当我做FindByPrimaryKey
第三次,EntitySpaces创造不知何故一个附加项目,这会导致一个InvalidOperationException
与Sequence contains more than one matching element
的消息。
有没有人在EntitySpaces之前打过这个,以及你是如何很好地处理用户在单个会话中多次创建和删除同一个实体的?