0

私はそのようなモデルを持っています

public class School{
   public int Id {get;set;}
   public string Name {get;set;}

   static private IEnumerable<School> school;
   static public IEnumerable<School> Schools(ContextDb context){
      if(school != null)
         return school;

      return(school = context.Schools.ToList());
   }
}

これで、ajaxを使用してテーブルにデータを挿入するページができました。問題は、ポップアップが閉じたときにAcademy.Schoolsを再生成しますが、「school」変数がnull(またはキャッシュ)ではないため、更新されたデータではなく(新しく追加されたレコードを含む)以前のデータを返します。

With that said, how do i empy that private variable so I would trigger the "return(school = ..);" line in the class?

Thanks!!

4

1 に答える 1

1

あなたのモデル設計は非常に奇妙です (与えられた情報に基づいて、より良いものを提供するのは難しいです.ActiveRecordパターンのようなものですか?), しかし、現在の設計では、「キャッシュ」を空にする新しいメソッドが必要schoolですnull.

public class School{
   public int Id {get;set;}
   public string Name {get;set;}

   static private IEnumerable<School> school;
   static public IEnumerable<School> Schools(ContextDb context){
      if(school != null)
         return school;

      return(school = context.Schools.ToList());
   }

   public static void InvalidateSchools()
   { 
       school = null;
   }
}

School.InvalidateSchools後続の呼び出しを呼び出した後School.Schools、新しいデータが返されます。

于 2012-07-19T04:54:56.943 に答える