4

Subsonic 3 の単純なリポジトリ パターンを使用して、データベースから値を保存および取得しています。Singleton patten を使用して作成する必要があるか、必要なときに作成する必要があるかを知りたいSimpleRepositoryです。次のような Person クラスがある場合のように:

public class Person
{
    public void Save()
    {
        var repo=new SimpleRepository("constr"); //CREATE REPO HERE
        repo.Add<Person>(this);
    }

    public void Load(int id)
    {
        var repo=new SimpleRepository("constr");//CREATE REPO HER
        .....
    }
}

または、このようなレポにアクセスします

public class Person
{
    public void Save()
    {
        var repo=RepoHelper.GetRepository();//GET FROM SINGLETON OBJECT
        repo.Add<Person>(this);
    }

    public void Load(int id)
    {
        var repo=RepoHelper.GetRepository();
        .....
    }
}
4

1 に答える 1

1

私はそれにシングルトンクラスを使用しています。一元化されたデータ ストアがある場合、これは正しいことのように思われます。リポジトリの種類を 1 か所で管理できます。また、リポジションタイプからの切り替えがしやすいというメリットもあります。

public static class Repository
{
    static SimpleRepository repo;

    public static IRepository GetRepository()
    {
        if (repo == null)
        {
            lock (repo)
            {
                repo = new SimpleRepository("NamedConnectionString",
                    SimpleRepositoryOptions.RunMigrations);
            }
        }

        return repo;
    }
}

Ps。また、Save() を実行し、外部関係を管理するためのベース レコード クラスも作成します。

于 2011-04-01T06:26:25.367 に答える