Tag: repository pattern

加入或Mutible DBContext存储库通用c#

我有存储库通用,我做的方法是Get,Update,Insert。 我从数据库中的表中获取数据我使用此方法。 public IEnumerable Get(Expression<Func> newObjectEntity,int page, int rowsByPage) where typeEntity : class { List Result = null; Result = Context.Set().Where(newObjectEntity).OrderBy(m => true).Skip(5 * (page – 1)).Take(rowsByPage).ToList(); return Result; } 我在获取数据时只有一个表这是我的代码: var collecProducts = repository.Get(c => true); 我的问题是,当我想要两个平板电脑我怎么做? 我发现这段代码但速度很慢。 var collecProducts = repository.Get(c => true); var collecCategory = repository.Get(c => true); var collectProductToCategory = (from […]

Xamarin项目中SQLite-Net的通用存储库

我想知道是否有办法为我的Xamarin项目编写通用存储库,而不是为我的对象中的每个实体编写不同的存储库。 Xamarin Tasky Pro示例为Task实体提供了一个Repository,因为它是它拥有的唯一实体。 在我自己的项目中,我有多个实体,所以我的问题是如何使以下客户存储库变得通用,以便ProductManager,EmployeeManager等可以使用它。 如果你知道一个例子或博客文章,请指出我正确的方向 namespace App.DataLayer { public class CustomerRepository { private ProntoDatabase _db = null; protected static string DbLocation; protected static CustomerRepository Me; static CustomerRepository() { Me = new CustomerRepository(); } protected CustomerRepository() { //set the db location; DbLocation = DatabaseFilePath; //instantiate the database _db = new ProntoDatabase(DbLocation); } public static string […]

将服务或回购单元中的工作单元分离

我试图将我的工作单元与我的服务或存储库分离,以便每当我想添加新服务时,我都不必触摸UoW代码。 我该怎么做呢? _categoryService = _unitOfWork.Get(); 而不是 _unitOfWork.CategoryService.Add(category) 我可以说; _categoryService.Add(category);

每个实体的通用存储库或特定存储库?

在我工作的公司中,他们命令我更新和旧的MVC App并为SQL DB实现Repository Pattern。 我使用Entity Framework Database-First创建了数据库的上下文,并获得了23个实体。 我的问题是: 我是否需要为每个实体创建存储库或为上下文实现通用存储库。 我问这个是因为我在搜索互联网时发现了以下内容: 第二个问题:通用存储库是否适用于entity framework数据库优先? 这是因为我在搜索互联网时发现了以下内容: 谢谢。

在Windows窗体中使用带有工作单元和存储库模式的简单注入器

我正在尝试在我的Windows窗体应用程序中实现IoC。 我的选择落在Simple Injector上,因为它快速而轻巧。 我还在我的应用程序中实现了工作单元和存储库模式。 这是结构: DbContext : public class MemberContext : DbContext { public MemberContext() : base(“Name=MemberContext”) { } public DbSet Members { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Conventions.Remove();\ } } 型号 : public class Member { public int MemberID { get; set; } public string Name { get; set; […]

使用Dapper的存储库设计模式

这可能是代码审查的问题,而不是堆栈溢出。 我正在使用Dapper for MicroORM来检索并将数据保存到SQL Server 2014.我在DTO Proj中有DTO类,它代表从DB检索到的数据或保存到DB。 我正在使用存储库模式,所以在我的服务层,如果需要存储库,我使用构造函数DI注入该依赖项,然后调用存储库上的方法来完成工作。 所以我要说有2个名为CustomerService和CarService的服务。 然后,我有2个存储库,一个CustomerRepository和一个CarRepository。 我有一个接口,它定义每个存储库中的所有方法,然后定义具体的实现。 下面显示了一个示例方法(调用Stored Proc来执行DB INSERT(注意,存储过程的实际字符串变量被定义为类顶部的私有字符串): public void SaveCustomer(CustomerDTO custDTO) { using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[“myDB”].ConnectionString)) { db.Execute(saveCustSp, custDTO, commandType: CommandType.StoredProcedure); } } 这一切都很好但我发现自己在每个存储库中的每个方法中重复使用块。 我有两个真正的问题,如下所述。 是否有一种更好的方法,我可能会以某种方式使用BaseRepository类,每个其他存储库inheritance,Base将实现数据库连接的实例化? 对于系统上的多个并发用户,这仍然可以正常工作吗? **** ****更新 根据Silas的回答,我创建了以下内容 public interface IBaseRepository { void Execute(Action query); } public class BaseRepository: IBaseRepository { public void Execute(Action […]