0

私は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. }
4

3 に答える 3

1

まず、更新しようとしているエンティティを取得します。

var entity = obj.GetEntity(id);
entity.col1 = "value";
context.SaveChanges(entity);

これが役立つことを願っています。

于 2013-05-14T13:01:40.463 に答える
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();
        }

次に、コントローラーで次のように置き換えcontext.SaveChanges();ます_context.SaveStudent_Master(studentmaster);

于 2013-05-15T05:31:58.843 に答える