首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据另一个表中的id编辑和删除表上的一行

根据另一个表中的id编辑和删除表上的一行
EN

Stack Overflow用户
提问于 2016-04-08 15:25:37
回答 1查看 526关注 0票数 0

使用Visual Studio从脚手架提供的代码,我从模型自动获得delete和编辑控制器,但是如果我需要根据id从数据库y中的一行编辑/删除数据库x中的一行,我将通过代码解释它:

控制器编辑我所做的

代码语言:javascript
运行
复制
var despesaUtilizador = db.SaldoUtilizadores.Where(x => x.despesaId == despesa.DespesaId).Where(x => x.ApplicationUserId == userId).First();
        despesaUtilizador.valor = despesa.DespesaValor;
        despesaUtilizador.data = despesa.Data;
        if (ModelState.IsValid)
        {
            db.Entry(despesaUtilizador).State = EntityState.Modified;
            db.Entry(despesa).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }

我对数据库SaldoUtilizadores进行了查询,以获得与发送给控制器的id相匹配的行,然后我尝试编辑该行,只是不知道如果有人能解释我这样做是否正确。

控制器删除

代码语言:javascript
运行
复制
public ActionResult DeleteConfirmed(int id)
    {
        Despesa despesa = db.Despesas.Find(id);
        var userId = User.Identity.GetUserId();
        var despesaUtilizador = db.SaldoUtilizadores.Where(x => x.despesaId == id).Where(x => x.ApplicationUserId == userId).First();
        db.Despesas.Remove(despesa);
        db.SaldoUtilizadores.Remove(despesaUtilizador);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

int delete --我试着做同样的事情,它也不工作:/

EN

回答 1

Stack Overflow用户

发布于 2016-04-08 16:10:09

我得到了这个异常“序列不包含任何元素”

这来自于使用First()。如果没有匹配的元素,它将引发该异常,因为它不能返回“第一个”项。

您应该始终使用FirstOrDefault(),除非您100%确定集合中确实有项目。如果没有匹配,FirstOrDefault()将返回null,而不是引发异常。然后,您可以检查null的存在并相应地处理。

如果你认为真的应该有一些东西被归还,那么你需要弄清楚为什么不是这样的。检查数据库中的数据,并确保您发出的查询与实际存在的查询成一行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36503490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档