SubSonic 3 简单存储库问题

Posted

技术标签:

【中文标题】SubSonic 3 简单存储库问题【英文标题】:SubSonic 3 simple repository question 【发布时间】:2010-12-25 20:22:50 【问题描述】:

我正在使用 Subsonic 3 的简单存储库模式来存储和从数据库中获取值。我想知道是否应该使用 Singleton 模式来创建 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();
        .....
    

【问题讨论】:

【参考方案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;
    

附言。我还构建了一个基本记录类来执行 Save() 和管理对外关系。

【讨论】:

我也会在我的下一个项目中尝试你的基记录类方法。 过几天我会用我正在使用的基类写一篇博客。我会及时通知你。

以上是关于SubSonic 3 简单存储库问题的主要内容,如果未能解决你的问题,请参考以下文章

Subsonic 3.0 对生产使用安全吗?

返回 POCO 而不是 SubSonic 的 ActiveRecord 对象的 SubSonic 数据层

Subsonic 2.2 ASP.NET MVC 无法识别的配置部分

序列化“SubSonic.Schema.DatabaseColumn”类型的对象时检测到循环引用。

获取最新的 Subsonic 版本

亚音速 3.0 中等信任问题