多个DataContext / EntitiesObject

时间:2009-10-29 20:39:06

标签: c# asp.net repository

我在我的应用程序中实现了一个存储库模式,在我的一些控制器中,我使用了各种不同的存储库。 (没有实施IoC)

UsersRepository Users;
OtherRepository Other;
Other1Repository Other1;   

public HomeController()
{
     this.Users = new UsersRepository();
     this.Other = new OtherRepository();
     this.Other1 = new Other1Repository();
}

为了避免将来出现膨胀控制器构造函数的问题,我创建了一个包装类,它包含了作为类对象的所有存储库,我在控制器构造函数中调用了该类的单个实例。

public class Repositories
{
    UsersRepository Users;
    OtherRepository Other;
    Other1Repository Other1;

    public Repositores()
    {
         this.Users = new UsersRepository();
         this.Other = new OtherRepository();
         this.Other1 = new Other1Repository();
    }
}

在控制器中:

Repositories Reps;

public HomeController()
{
     this.Reps= new Repositories();
}

当应用程序预计会增长时,这会影响我的应用程序现在还是将来的性能。

每个存储库都创建自己的DataContext / Entities,因此对于10个存储库,即10个不同的DataContexts / Entities。

DataContext / Entitie是一个昂贵的对象来创建如此庞大的数字吗?

1 个答案:

答案 0 :(得分:3)

最好不要在使用它们时创建存储库,而不是在构造函数中创建存储库。

private UsersRepository _usersRepository;
private  UsersRepository UsersRepository
{
    get
    {
        if(_usersRepository == null)
        {
            _usersRepository = new UsersRepository();
        }
        return _usersRepository;
    }
}

然后使用属性而不是字段进行访问。