无法使用WCF休息服务删除所有记录

时间:2013-01-03 14:59:05

标签: asp.net wcf

我正在使用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的新手所以请帮助我。

1 个答案:

答案 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]);
                    }