1

約 20 列のデータベース テーブルにいくつかの変更を単純に保存していますが、20 秒かかります。レコードの取得はほぼ瞬時です。なぜこれが起こっているのかわかりません。私が間違っていることはありますか、これを行うためのより速い方法はありますか?

db.Entry(EmInf).State = System.Data.EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Confirm/");

(MVC 4 & SQL 2008 R2 | 他の Web サイトははるかに多くのデータをはるかに高速に更新できることに注意する必要がありますが、それらは古いプログラムであり、EF を使用していません。これは EF のパフォーマンスの問題ですか?私はできません私が行った他の MVC プログラムにはこの問題がないように見えるため、その理由を確認してください。)

更新: データベースの最初のセットアップです。言及するのを忘れました。

完全な方法は次のとおりです。

    [HttpPost]
    [Authorize]
    public ActionResult Edit(Em_Emergency_Info EmInf)
    {

        try
        {
            using (var db = new WINDEntities()) {


                db.Entry(EmInf).State = System.Data.EntityState.Modified;
                db.SaveChanges();

                return RedirectToAction("Confirm/");
            }


        }
        catch (DbEntityValidationException dbEx)
        {
            foreach (var validationErrors in dbEx.EntityValidationErrors)
            {
                foreach (var validationError in validationErrors.ValidationErrors)
                {
                    Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                }
            }
            int rec = Convert.ToInt32(User.Identity.Name);
            return View(db.Em_Emergency_Info.Find(rec));
        }
    }

モデルは次のとおりです。

using System;
using System.Collections.Generic;

public partial class Em_Emergency_Info
{
    public int id { get; set; } //This is the primary key.
    public string Em_PIn_Key { get; set; }
    public string Em_policy_nb { get; set; }
    public string Em_Pin_nb { get; set; }
    public string Em_First_Name { get; set; }
    public string Em_Last_Name { get; set; }
    public string Em_Addr1 { get; set; }
    public string Em_Addr2 { get; set; }
    public string Em_City { get; set; }
    public string Em_State { get; set; }
    public string Em_Zip { get; set; }
    public string Em_Plus4 { get; set; }
    public string Em_Phone_Home { get; set; }
    public string Em_Phone_Work { get; set; }
    public string Em_Mobile { get; set; }
    public string Em_Email { get; set; }
    public string Em_Fax_Nb { get; set; }
    public string Em_Relationship { get; set; }
    public string Em_type { get; set; }
    public bool EmailOptIn { get; set; }
    public bool PhoneOptIn { get; set; }
    public bool PushOptIn { get; set; }
    public bool FaxOptIn { get; set; }
    public string Em_Mobile2 { get; set; }
    public string Em_EMail2 { get; set; }
    public string Em_Other_Info { get; set; }
    public string Em_Primary_Contact { get; set; }
    public string Em_Full_Name { get; set; }
}
4

0 に答える 0