2016-04-22 14 views
0

シングルトンパターンを学習しようとしていますが、テーブルからデータを取得して、グリッドビューにデータを入力する際に​​問題がありました。 Btw私はエンティティフレームワークを使用しています。ここでシングルトンテーブルからデータを取得

は私のGridViewのです:

<asp:GridView ID="GridView1" runat="server"></asp:GridView> 

マイPersonelTableクラス:

public class PersonelTable 
{ 
    public PersonelTable(string isim,string soyad) 
    { 
     Isim = isim; 
     Soyad = soyad; 
    } 
    public int Id { get; private set; } 
    public string Isim { get; set; } 
    public string Soyad { get; set; } 
} 

マイuserbusinessクラス:

public sealed class UserBusiness 
{ 
    private JuqueryDbEntities entity = new JuqueryDbEntities(); 
    private static volatile UserBusiness instance; 
    private static readonly object syncRoot = new Object(); 

    private UserBusiness() { } 

    public static UserBusiness Instance 
    { 
     get 
     { 
      if (instance == null) 
      { 
       lock (syncRoot) 
       { 
        if (instance == null) 
         instance = new UserBusiness(); 
       } 
      } 
      return instance; 
     } 
    } 

    public List<PersonelTable> GetAllUsers() 
    { 
     List<PersonelTable> personelList = new List<PersonelTable>(); 

     var users = (from u in entity.PersonelTable select u); 
     foreach (var user in users) 
     { 
      personelList.Add(new PersonelTable(user.Isim,user.Soyad)); 
     } 
     return personelList; 
    } 
} 

そして、私のWebフォームの最後に分離コード:

protected void PopulateGridView() 
    { 
     List<PersonelTable> personelList = UserBusiness.Instance.GetAllUsers(); 
     GridView1.DataSource = personelList; 
     GridView1.DataBind(); 
    } 

私の 'GetAllUsers'メソッドのforeachに 'ProjectName.PersonelTableがパラメータなしで作成者を持っていません'というエラーが表示されます。なぜこれが起こっているのですか?どのように修正できますか?

+1

"私はシングルトンパターンを学ぼうとしています"。ただしないでください。 [シングルトンは反パターンです](http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons?rq=1)。それは、「私は失血を最適化する壁に頭を打つことを学んでいる」というようなものです。正当な答えは「それを止める」ことです。 – nvoigt

+0

私はシングルトンについて非常に多くの記事を赤色にしており、誰もが異なることを言っているので、本当に混乱してしまいます。さて、ユーザーオブジェクト同士の干渉を避けるためにどのようなパターンを使用できますか?私はそれについて本当に苦労しました。あるユーザーが何かを作って、同じ機能を同じ時間に使用すると、他のユーザーが影響を受けます。 @nvoigt –

+0

あなたはある種の同期化が必要です。私たちはあなたの問題が何であるかを知らないので、助けが難しいです。あなたは実際の問題について質問することができます。 – nvoigt

答えて

0

本当に必要のないPersonテーブルにパラメータを渡していると思います。そのパラメータを削除してからもう一度お試しください。

関連する問題