База данных не обновляется в Entity Framework в .NET Framework

#c# #entity-framework #ef-code-first

Вопрос:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;
using Email_System.Models;
using System.Data.Entity;

namespace Email_System.Pages
{
    public partial class EditProfile : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            /*
            EmailDbContext db = new EmailDbContext();
            string username = Session["user"].ToString();
            User u = db.Users.Where(b => b.UserName == username).FirstOrDefault();
            fname.Text = u.UserFirstName.ToString();
            lname.Text = u.UserLastName.ToString();
            date.Text = u.DOB.ToString();
            fname.Text = Session["fname"].ToString();
            lname.Text = Session["lname"].ToString();
            date.Text = Session["dob"].ToString();
        }

        protected void Edit_Click(object sender, EventArgs e)
        {
            EmailDbContext db1 = new EmailDbContext();
            string uname = Session["user"].ToString();
            Label1.Text = uname;
            User u = db1.Users.Where(b => b.UserName == uname).FirstOrDefault();

            db1.Entry(u).State = EntityState.Modified;
            u.UserFirstName=fname.Text;
            u.UserLastName=lname.Text;
            u.DOB = DateTime.Parse(date.Text);
            Session["fname"] = fname.Text;
            Session["lname"] = lname.Text;
            Session["dob"] = date.Text;
            db1.Users.Attach(u);
            db1.SaveChanges();
        }
    }
}
 

В этом разделе выше говорится EditProfile.aspx.cs . В этом коде я хочу обновить свой fname , lname и dob , но когда я нажимаю кнопку, это не обновляет базу данных. Я использую EF в .NET Framework.

В чем проблема?

Комментарии:

1. Вам нужно совершить действия с помощью ‘db1. Совершить();’

Ответ №1:

Я думаю, что вы просто разместили команду «Изменение состояния» в неправильном порядке, я бы попробовал:

 protected void Edit_Click(object sender, EventArgs e)
    {
        EmailDbContext db1 = new EmailDbContext();
        string uname = Session["user"].ToString();
        Label1.Text = uname;
        User u = db1.Users.Where(b => b.UserName == uname).FirstOrDefault();

        u.UserFirstName=fname.Text;
        u.UserLastName=lname.Text;
        u.DOB = DateTime.Parse(date.Text);
        Session["fname"] = fname.Text;
        Session["lname"] = lname.Text;
        Session["dob"] = date.Text;
        db1.Users.Attach(u);
        db1.Entry(u).State = EntityState.Modified;
        db1.SaveChanges();
    }
 

Комментарии:

1. Во-первых, Спасибо ! Я пытаюсь, но не получается.