如何更新数据库记录?

时间:2017-06-26 14:19:01

标签: c# entity-framework

我有这样的代码:

[HttpPost]
public static bool AggiornaInstallatore(FormCollection form)
{
    using (var ctx = new termostore_installazione_Entities())
    {
        var idr = Convert.ToInt32(form["id_installatore"]);
        var installatore = ctx.installatori.Where(x => x.Id == idr).FirstOrDefault();
        var squad = Convert.ToInt16(form["squadra"]);
        var squadra = ctx.squadra.Where(x => x.id == squad).FirstOrDefault();

        if (form["edit_nome"] != "") { installatore.nome = form["edit_nome"]; }
        if (form["edit_cognome"] != "") { installatore.cognome = form["edit_cognome"]; }
        if (form["edit_email"] != "") { installatore.mail = form["edit_email"]; }
        if (form["edit_telefono"] != "") { installatore.telefono = form["edit_telefono"]; }
        if (form["edit_indirizzo"] != "") { installatore.indirizzo = form["edit_indirizzo"]; }
        if (form["edit_zona_competenza"] != "") { installatore.zona_competenza = form["edit_zona_competenza"]; }

        installatore.squadra.Add(squadra);

        ctx.SaveChanges();

    }
    return true;
}

现在,我没有添加squadra,而是想更新此记录,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

不是将元素squadra添加到列表中,而是可以从db更新对象的每个元素:

//The element you already have in your example
var squadra = ctx.squadra.Where(x => x.id == squad).FirstOrDefault();

squadra.name = form.name; //I assume you get te updated value from form
squadra.type = form.type;
...

ctx.SaveChanges();

您已更新了小队元素,并且使用SaveChanges方法,即使在数据库上也会设置更新。

相关问题