2017-08-29 122 views
1

ASP.NET样板工程。如何从数据库中精确地获取所有用户

我有一个用户的数据库。我正在使用标准方法检索它们_userRepository.GetAll()并删除_userRepository.Delete(id)

默认情况下,当用户标识删除时,它仍然保留在数据库中,isDeleted 字段标记为true。

我的问题是:有没有在ABP从数据库中检索正是所有用户的任何默认的方法,什么如下:

有没有其他的可能性,这样做比写存储过程

SELECT * FROM dbo.AbpUsers 

并在存储库中使用它(然后在服务中)?

+0

有你找到任何解决办法?然后分享,我有同样的问题 –

+0

不,过滤器没有工作。我编写了自己的存储过程,并使用适当的实体和DTO从数据库中检索所有用户(就像任何其他非ABP存储库默认存储过程一样)。 – Dawid

回答

0

你应该disable filterSoftDelete):

//provided by DI 
private readonly IUnitOfWorkManager _unitOfWorkManager; 

using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete)) 
//or 
//using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.SoftDelete)) 
{ 
    var completelyAllUsers = _userRepository.GetAllList();     
} 
+0

我是否需要装配或参考才能使用它? 我在尝试,但出现错误: 'Abp.Domain.Uow.IActiveUnitOfWork'不包含'DisableFilter'的定义,也没有接受类型'Abp.Domain.Uow'的第一个参数的扩展方法'DisableFilter' .IActiveUnitOfWork'可以找到(你是否缺少使用指令或程序集引用?)\t' 另一个错误: '名称'AbpDataFilters'在当前上下文中不存在' – Dawid

+0

@Dawid,它们全部来自'Abp .Domain.Uow'命名空间来自'Abp'程序集 –

+0

那么为什么如果我使用Abp.Domain.Uow'会出现这样的错误呢? – Dawid

相关问题