我正在开发从数据库更新记录的简单 MVC 应用程序。我使用 BAL 和 Controller 来获取记录和更新,如下所示
学生.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1.DAL
{
public class Student
{
DemoDatabaseEntities db = new DemoDatabaseEntities();
public Student_Mast getStudentByID()
{
Student_Mast student = db.Student_Mast.Where(i => i.StudID == 1).FirstOrDefault();
return student;
}
}
}
和StudentController.cs
public class UpdateController : Controller
{
DemoDatabaseEntities db = new DemoDatabaseEntities();
Student _bal = new Student();
/ GET: Update
public ActionResult Index()
{
Student_Mast model = new Student_Mast();
model = _bal.getStudentByID();
model.First_Name = "Hardik";
model.Last_Name = "Gondalia";
db.SaveChanges();
return View();
}
}
但是 db.savechanges() 不会更新记录。
如果我像下面这样更新记录,而不是这个,它可以工作
StudentController.cs
public class UpdateController : Controller
{
DemoDatabaseEntities db = new DemoDatabaseEntities();
Student _bal = new Student();
/ GET: Update
public ActionResult Index()
{
Student_Mast model = new Student_Mast();
model = db.Student_Mast.Where(i => i.StudID == 1).FirstOrDefault();
model.First_Name = "Hardik";
model.Last_Name = "Gondalia";
db.SaveChanges();
return View();
}
}
由于您是从 DbContext 的不同实例检索记录,因此无法保存它。解决方案是向您的 Student 类添加一个构造函数,该类接受一个 DbContext 实例并将其保存到您拥有的变量中。
public class Student
{
private DemoDatabaseEntities db = null;
public Student(DemoDatabaseEntities dbContext){
{
this.db = dbContext;
}
public Student_Mast getStudentByID()
{
Student_Mast student = db.Student_Mast.Where(i => i.StudID == 1).FirstOrDefault();
return student;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句