0

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

4

1 回答 1

0

我找到了自己的解决方案。我做什么我使用 find 方法而不是我在上面的代码中使用的 FirstOrDefault。我使用如下查找方法

 var altVersionEntity =
                _altProductVersionEntityRepository.Find(x => x.ProductVersionEntityId == detail.Id);

然后我使用变量 altVersionEntity 并转换为列表,然后循环遍历它并从“altProductVersionEntityRepository”存储库中删除记录,如下所示

var tempList = altVersionEntity.ToList();
                    for (i = 0; i <tempList.Count ; i++)
                    {
                        _altProductVersionEntityRepository.Delete(tempList[i]);
                    }
于 2013-01-07T14:42:48.217 回答