正如标题所说,我怎样才能SharpRepository's
InMemoryRepository
用一些虚拟数据播种?
我在我的配置中试过这个:
var sharpRepositoryConfiguration = new SharpRepositoryConfiguration();
sharpRepositoryConfiguration.AddRepository(new InMemoryRepositoryConfiguration("inmemory"));
sharpRepositoryConfiguration.DefaultRepository = "inmemory";
var repo = sharpRepositoryConfiguration.GetInstance<Account>().Add(new [] { .... });
return new StructureMapDependencyResolver(sharpRepositoryConfiguration);
但是,当在我的控制器中解析存储库时,数据不存在。我的理解是 InMemoryRepository 将用作内存中的数据存储 - 但仅仅是 InMemoryRepository 纯粹只是将数据存储在存储库中并且从不将它们推送到底层的内存数据存储中吗?
能够对 SharpRepository 进行单元测试和模拟非常好,但是如果不能看到一些种子数据进入我的视图,我就无法真正开发:(
编辑:我设法通过将我的存储库实现设置为单例来做到这一点:
x.For<IAccountRepository>()
.Singleton()
.Use<SharpRepositoryAccountRepository>();
然后将其注入我的控制器。通过将其设置为单例,数据在请求之间保持不变。