微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – SubSonic 3简单存储库问题

我使用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
        .....
    }
}

或者像这样访问repo

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();
        .....
    }
}

解决方法

我使用单例类.当您拥有集中式数据存储时,这似乎是正确的.我允许您在一个地方管理存储库的类型.还有一个优点是它可以更容易地从重新定位类型切换.

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()和管理外部关系.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐