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 简单存储库问题的主要内容,如果未能解决你的问题,请参考以下文章
返回 POCO 而不是 SubSonic 的 ActiveRecord 对象的 SubSonic 数据层
Subsonic 2.2 ASP.NET MVC 无法识别的配置部分