我目前正在尝试保存一个在不同场景中填充了新实体和脏实体对象的 EntityCollection。
我已经设置了一个事务以在保存时在失败事件中回滚。
但是,它似乎总是失败并引发错误......在这两种情况下,保存一个新的或现有的 EntityCollection。
我还有一个方法可以选择单个实体,即 LanguagetranslationEntity 并将其添加到在类中定义为属性的 Entitycollection。
public EntityCollection<LanguageTranslationEntity> LanguagetranslationCollection { get; set; }
public void AddLanguageTranslationToCollection(LanguageTranslationEntity prompt,bool isnew)
{
//Add the prompt to the collection
LanguagetranslationCollection.Add(prompt);
Isnewcollection = isnew;
}
但是,无论我尝试保存新实体还是旧实体,总是会引发异常,如下所示。
在执行操作查询期间捕获到异常:违反主键约束“PK_LanguageTranslations”。无法在对象“dbo.LanguageTranslations”中插入重复键。重复键值为 (translation_10374, 1)。
public void SaveLanguageTranslationCollection(DataAccessAdapter adapter)
{
using (DataAccessAdapter newadapter = adapter)
{
adapter.SaveEntityCollection(LanguagetranslationCollection);
}
}
我应该自己保存每个实体吗?还有,我应该如何使用 SaveEntityCollection()?
我打算使用它来保存许多 LanguageTranslationEntities,方法是将它们填充到 EntityCollection 中并一次保存它们,在抛出异常的事件中使用事务来回滚。
请帮助