我正在使用WCF Rest服务。我试图从名为" _altProductVersionEntityRepository"的存储库中删除多个记录。 以下是我的完整代码
public Result UpdateProductObject(ProductObjectToSave prodSave)
{
IUnitOfWork unitOfWork = new UnitOfWork((IObjectContext)_objectSetFactory);
var versions = prodSave.VersionDetails;
var altVersions = prodSave.AlternateVersionDetails;
foreach (var versionDetail in versions)
{
var detail = versionDetail;
var dbVersionentity = _productVersionEntityRepository.FirstOrDefault(x => x.Id == detail.Id);
var altVersionEntity = _altProductVersionEntityRepository.FirstOrDefault(x => x.ProductVersionEntityId == detail.Id);
if (dbVersionentity == null)
{
dbVersionentity = new ProductVersionEntity();
_productVersionEntityRepository.Insert(dbVersionentity);
dbVersionentity.Id = GetNextTableId("vProductVersion");
dbVersionentity.CreatedOn = DateTime.Now;
}
dbVersionentity.Name = detail.Name;
dbVersionentity.Code = detail.Code;
if (detail.Id > 0){
_productVersionEntityRepository.Update(dbVersionentity);
if (altVersionEntity != null){
_altProductVersionEntityRepository.Delete(altVersionEntity);
}
}
}
try
{
unitOfWork.Commit();
}
catch (Exception e)
{
return new Result() { Status= e.Message };
}
return new Result() { Status= = "Record updated successfully" };
}
在变量" altVersionEntity"我试图找到来自" _altProductVersionEntityRepository"的第一条记录。库。在这个存储库中有多个记录,但它只删除单个记录,因为我在这里做FirstOrDefault。有什么方法可以删除所有记录。我正在使用FirstOrDefault,因为我想删除记录,只要它们被发现它会抛出错误。 有什么方法可以删除多条记录?我还是WCF的新手所以请帮助我。
答案 0 :(得分:0)
我找到了自己的解决方案。我做什么我使用find方法而不是我在上面的代码中使用的FirstOrDefault。我使用下面的查找方法
var altVersionEntity =
_altProductVersionEntityRepository.Find(x => x.ProductVersionEntityId == detail.Id);
然后我使用变量altVersionEntity并转换为list然后遍历它并从“altProductVersionEntityRepository”存储库逐个删除记录,如下所示
var tempList = altVersionEntity.ToList();
for (i = 0; i <tempList.Count ; i++)
{
_altProductVersionEntityRepository.Delete(tempList[i]);
}