我正在开发一个MVC应用程序。
当我调用context.SaveChanges来更新特定记录时。更新未在数据库中注册。我也没有得到任何运行时错误。所有通知都是我的记录没有更新。我仍然看到相同的价值观。插入功能完美无缺。
enter code here
public Admission Update(int stuid){
VDData.VidyaDaanEntities context = new VDData.VidyaDaanEntities();
VDData.Student_Master studentmaster = new VDData.Student_Master();
studentmaster.Student_ID = stuid;
studentmaster.Student_First_Name = this.FirstName;
studentmaster.Student_Middle_Name = this.MiddleName;
studentmaster.Student_Last_Name = this.LastName;
studentmaster.Student_Address_1 = this.Address;
studentmaster.Student_Address_2 = this.Address2;
studentmaster.Student_City = this.City;
studentmaster.Student_State = this.State;
studentmaster.Student_Pin_Code = this.Pincode;
context.SaveChanges(); // here it wont give any kind of error. it runs sucessfully. }
答案 0 :(得分:1)
首先获取您要更新的实体:
var entity = obj.GetEntity(id);
entity.col1 = "value";
context.SaveChanges(entity);
希望这会有所帮助。
答案 1 :(得分:0)
在
context.SaveChanges();
您需要调用此
context.Student_Masters.Add(studentmaster );
修改:向您的Abstraction
介绍Context class
并在您的上下文类中创建方法,如下所示,然后您可以在想要创建或更新对象时调用它
public void SaveStudent_Master(Student_Master studentmaster)
{
using (var context = new VDData.VidyaDaanEntities())
{
if (studentmaster.Student_ID == 0)
{
context.Student_Masters.Add(studentmaster);
}
else if (studentmaster.Student_ID > 0)
{
//This Updates N-Level deep Object grapgh
//This is important for Updates
var currentStudent_Master = context.Student_Masters
.Single(s => s.Student_ID == studentmaster.Student_ID );
context.Entry(currentStudent_Master ).CurrentValues.SetValues(studentmaster);
}
context.SaveChanges();
}
然后在您的Controller中用context.SaveChanges();
_context.SaveStudent_Master(studentmaster);
答案 2 :(得分:0)
好像你想要更新,所以你的代码应该是
VDData.Student_Master studentmaster = context.Student_Masters.Single(p=>p.Student_ID == stuid);
如果是主键,则不应更改Student_ID。
public Admission Update(int stuid){
VDData.VidyaDaanEntities context = new VDData.VidyaDaanEntities();
//VDData.Student_Master studentmaster = new VDData.Student_Master();
//REPLACE WITH
VDData.Student_Master studentmaster = context.Student_Masters.Where(p=>p.Student_ID == stuid);
studentmaster.Student_ID = stuid;
studentmaster.Student_First_Name = this.FirstName;
studentmaster.Student_Middle_Name = this.MiddleName;
studentmaster.Student_Last_Name = this.LastName;
studentmaster.Student_Address_1 = this.Address;
studentmaster.Student_Address_2 = this.Address2;
studentmaster.Student_City = this.City;
studentmaster.Student_State = this.State;
studentmaster.Student_Pin_Code = this.Pincode;
context.SaveChanges();