问题标签 [sharp-repository]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3158 浏览

c# - SharpRepository EF5,如何共享 dbcontext

使用SharpRepository 的 EF5 实现,如何在使用 RepositoryFactory 时在 IRepository 的不同实例之间共享 DBContext?

代码片段:

Web.config 文件:

谢谢

0 投票
2 回答
21675 浏览

c# - 如何将实体框架 DbContext 注入 SharpRepository 的 ConfigurationBasedRepository

我真的很想将SharpRepositoryNinject一起使用,但我不明白如何配置 Ninject 以在存储库之间共享 Entity Framework DbContext。

我正在使用实体框架版本 5 和 Ninject 版本 3。

目前我Ef5Repository在我的源代码中使用,但我想用ConfigurationBasedRepository. 但我无法弄清楚如何将 EF 传递(或注入)DbContext到存储库。

示例(当前状态):

目标:

我已经阅读了两篇博客文章SharpRepository: Getting StartedSharpRepository: Configuration,但它们都对我没有帮助,因为:

  1. 使用的 DIC 是 StructureMap,而不是 Ninject。
  2. 源代码示例不完整(例如使用未声明的变量)。

所以我的问题:有人可以为我提供一些源代码示例如何实现上述目标(DbContext在所有扩展的存储库之间共享一个实体框架实例ConfigurationBasedRepository)吗?

0 投票
1 回答
142 浏览

ravendb - SharpRepository + OptimisticConcurrency

想知道是否有任何方法可以将存储库的保存/更新操作设置为使用乐观并发?还没有看到任何方法来做到这一点?还是默认情况下它是这样配置的?

0 投票
1 回答
5275 浏览

c# - SharpRepository - 在两个存储库之间加入

我已经搜索了网络并且无法找到在两个 SharpRepository 存储库之间进行连接的任何示例。任何人都可以提供指向页面或示例的链接吗?我正在尝试将以下 linq 表达式转换为清晰的 repo 表达式:

- - - 更新 - - -

这是我想出的,但它似乎并没有正常工作......

0 投票
2 回答
1515 浏览

autofac - Webapi环境中的Sharprepository Autofac InstancePerApiRequest不起作用

有没有人有一个使用 InstancePerApiRequest for DbContext 与 autofac 进行Sharprepository 集成的工作示例?

我正在注册我的dbcontext:

如果我删除 InstancePerApiRequest,sharprepository 就能够获得一个 dbcontext。但是使用 InstancePerApiRequest,我会收到下面粘贴的错误消息。基本上错误的症结在于,我怀疑,sharprepository 进行调用的方式:

从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身.

完整的错误堆栈:

iisexpress.exe 错误:0:Operation=DefaultHttpControllerActivator.Create,Exception=System.InvalidOperationException:尝试创建类型为“AccountController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。---> Autofac.Core.DependencyResolutionException:在“AccountRepository”类型上调用构造函数“Void .ctor()”时引发异常。---> 无法使用“AutofacDependencyResolver”解析类型“System.Data.Entity.DbContext”。确保您已为此类型配置了 Ioc 容器。查看 InnerException 以了解更多详细信息。(有关详细信息,请参阅内部异常。)---> SharpRepository.Repository.Ioc.RepositoryDe​​pendencyResolverException:无法解析类型“System.Data.Entity.DbContext” 使用“AutofacDependencyResolver”。确保您已为此类型配置了 Ioc 容器。查看 InnerException 以了解更多详细信息。---> Autofac.Core.DependencyResolutionException:从请求实例的范围内看不到标签匹配“AutofacWebRequest”的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身. 从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身. 从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身.

0 投票
1 回答
864 浏览

c# - 将开放的泛型类型绑定到 Simple Injector 中的方法

我正在尝试将 SharpRepository 项目配置为也使用 SimpleInjector IOC 框架作为框架中的 IOC 选项,但我坚持移植一些代码。无法弄清楚如何使用 SimpleInjector 传入 <> 通用接口。

第二个问题/问题是如何使用简单的注入器将通用参数传递到上下文中。

0 投票
1 回答
161 浏览

c# - SharpRepository is not disposing of repositories in testing?

I'm trying to write an integration test for my application that utilizes entity framework and sharprepository. I'm writing some tests at the moment and I've noticed that data that I add to the repository in the tests is not being removed when I call Dispose() during TestCleanup. My code is as follows:

The main purpose of these tests is not to test the SharpRepository implementation of EntityFramework, but rather to make sure that I've configured Entity Framework correctly. EntityFrameworkRepositoryConfiguration simply contains a connection string, which is passed to BasicRepositoryFactory - which literally just calls return RepositoryFactory.GetInstance<T>();.

My issue is is that ShouldCreateRepositoryAndFindSingleElementBasedOnPredicate fails because the element added in ShouldCreateRepositoryAndInsertIntoItWithoutExceptions is still in the repository - even though the repository should have been disposed in Cleanup.

What can I do to fix this issue?

0 投票
1 回答
405 浏览

c# - 如何播种 SharpRepository 的 InMemoryRepository?

正如标题所说,我怎样才能SharpRepository's InMemoryRepository用一些虚拟数据播种?

我在我的配置中试过这个:

但是,当在我的控制器中解析存储库时,数据不存在。我的理解是 InMemoryRepository 将用作内存中的数据存储 - 但仅仅是 InMemoryRepository 纯粹只是将数据存储在存储库中并且从不将它们推送到底层的内存数据存储中吗?

能够对 SharpRepository 进行单元测试和模拟非常好,但是如果不能看到一些种子数据进入我的视图,我就无法真正开发:(

编辑:我设法通过将我的存储库实现设置为单例来做到这一点:

然后将其注入我的控制器。通过将其设置为单例,数据在请求之间保持不变。

0 投票
1 回答
321 浏览

c# - SharpRepository 单元测试 CacheRepository 无法添加多个项目

我们在 EntityFramework 6 之上使用 SharpRepository,到目前为止效果很好。我们还在实施完整的单元测试,在研究使用 SharpRepository 进行单元测试的批准方法是使用 CacheRepository 时,这让我们可以使用一致的测试数据填充存储库,然后针对这些测试存储库测试服务和模型。这在大多数情况下也有效。

问题

我们已经使用单个对象成功填充了这些存储库,然后我们可以将该对象拉出并对其进行测试。但是一个新的测试用例要求我们针对多个条目进行测试,当我们添加它们时,只有最后一个条目实际上在 Repo 中可用。我从单元测试输出中看到了这一点,并且在调试时在监视窗口中检查了 repo,它只有一个。

我已经设置了标准缓存策略和内存提供程序,我还尝试使用 Add 函数单独添加每个对象并作为列表添加。

编码

设置

这些方法只能分别在每个测试方法之前和之后调用,因此不会在方法本身内部引起问题。

添加

正如我之前所说,我已经尝试了单独的添加调用和现在的列表,结果相同。

编辑: SharpRepositorySettings 我不确定为什么将 CacheUsed 设置为 false,我没有针对这些设置的其他设置,但我想知道这是否是问题的一部分,以及我是否需要明确调用某些东西才能使其正常工作。

研究

我对此进行了相当广泛的研究,包括一般的 Sharp Repository 和专门的单元测试。

我已经看到了这个 SO,这导致我使用了 CacheRepository,如何为 SharpRepository 的 InMemoryRepository 播种?. 但我无法找到有关此信息的任何信息。可能是我错误地设置了存储库的缓存,但这就是我看到的示例中通常的样子。我已经在许多单元测试中成功地使用了它,但之前不必填充多个值。

要求

我正在寻找帮助来确定为什么此设置无法将多个对象添加到它的缓存中,以及我如何更改此代码,或者我的单元测试设置通常能够在我的 CacheRepository 中容纳多个对象。

0 投票
1 回答
176 浏览

sharp-repository - 如何使用选择器从 SharpRepository FindAll 方法中获取不同的分页列表?

我试图从一个实体类型中获取一个字段,该实体类型使用带有分页的sharprepository FindAll 方法有很多重复。我不知道如何提供Distinct参数,或者是否有可能?