c# – SubSonic 3简单存储库问题
发布时间:2020-12-15 21:13:49 所属栏目:百科 来源:网络整理
导读:我使用Subsonic 3的简单存储库模式来存储和从数据库获取值.我想知道是否应该使用Singleton patten来创建SimpleRepository,或者应该在需要时创建一个.就像我有这样的Person类: public class Person{ public void Save() { var repo=new SimpleRepository("co
|
我使用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()和管理外部关系. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
