Pregunta

Estoy utilizando el patrón de repositorio sencilla de 3 subsónico para almacenar y obtener valores a partir de la base de datos. Quiero saber si debo utilizar Singleton Patten para crear SimpleRepository o debería crear uno cada vez que se necesita. Al igual que si tengo clase de persona como esto:

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
        .....
    }
}

o acceso repo como esto

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();
        .....
    }
}
¿Fue útil?

Solución

Yo uso una clase Singleton para ello. Parece ser lo correcto cuando se tiene un almacén de datos centralizada. Yo le permite administrar el tipo de repositorio en un solo lugar. También se tiene la ventaja de que hace que sea más fácil cambiar de tipo de reposición.

public static class Repository
{
    static SimpleRepository repo;

    public static IRepository GetRepository()
    {
        if (repo == null)
        {
            lock (repo)
            {
                repo = new SimpleRepository("NamedConnectionString",
                    SimpleRepositoryOptions.RunMigrations);
            }
        }

        return repo;
    }
}

Sal. También construyo una clase de registro de la base para hacer un Guardar () y para gestionar las relaciones exteriores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top