亚音速3简单存储库问题
-
13-10-2019 - |
题
我正在使用亚音速3的简单存储库模式来存储并从数据库中获取值。我想知道我是否应该使用Singleton Patten创建 SimpleRepository
或应在需要时创建一个。就像我有这样的人课:
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();
.....
}
}
解决方案
我为此使用Singleton课程。当您拥有集中式数据存储时,这似乎是正确的事情。我允许您在一个地方管理存储库的类型。还具有一个优势,即它使从重新定位类型更容易切换。
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。我还建立了一个基本记录类以进行保存()并管理外交关系。
不隶属于 StackOverflow