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がパラメータなしで作成者を持っていません'というエラーが表示されます。なぜこれが起こっているのですか?どのように修正できますか?
"私はシングルトンパターンを学ぼうとしています"。ただしないでください。 [シングルトンは反パターンです](http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons?rq=1)。それは、「私は失血を最適化する壁に頭を打つことを学んでいる」というようなものです。正当な答えは「それを止める」ことです。 – nvoigt
私はシングルトンについて非常に多くの記事を赤色にしており、誰もが異なることを言っているので、本当に混乱してしまいます。さて、ユーザーオブジェクト同士の干渉を避けるためにどのようなパターンを使用できますか?私はそれについて本当に苦労しました。あるユーザーが何かを作って、同じ機能を同じ時間に使用すると、他のユーザーが影響を受けます。 @nvoigt –
あなたはある種の同期化が必要です。私たちはあなたの問題が何であるかを知らないので、助けが難しいです。あなたは実際の問題について質問することができます。 – nvoigt