为什么实体已经消失了,但它仍然被验证?

12
  1. TrackableCollectioncontext.Entities.Add(entity))添加一个新实体(EntityState = New)。
  2. 在不保存的情况下从TrackableCollection中删除已添加的实体(context.Entities.Remove(entity))(EntityState = Unmodified)。
  3. 保存(context.SubmitChanges())。

我仍然从与实体相关联的数据注释中获得验证错误,为什么?

    public class Entity
    {
       [Required]
       public string Name { get; set; }
    }
2个回答

1

它正在跟踪被移除的实体集合,即使它没有被持久化到您的存储中(它在ObjectsRemovedFromCollection属性中)。

此链接提供有关内部操作的更多信息:MSDN

我没有找到明确触发验证的详细信息,但您可以尝试在调用context.SubmitChanges()之前调用AcceptChanges()或ObjectsAddedToCollectionProperties.Clear()和ObjectsRemovedFromCollectionProperties.Clear()。


嗯,这些成员对我来说似乎不存在。 - O.O

0

尝试

context.Entry(entity).State = EntityState.Detached

然后调用

context.SaveChanges()

;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接