gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:52:26 25 4
gpt4 key购买 nike

我正在使用 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;
}
}

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

关于c# - SubSonic 3 简单存储库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4531556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com