我使用.NET的核心与ASP.NET样板框架。 在我得到了修复一些代码,我们有一个GetAll()
本来应该从MSSQL数据库返回行的集合方法。 原代码:
public IEnumerable<GuidelineCategoriesDto> GetAll(bool activeFilter = true)
{
return _guidelineCategoriesRepo.GetAll().Select(x => x.MapTo(new GuidelineCategoriesDto())).ToList();
}
我当时正在与该方法的问题是,它会返回一个没有被软删除数据库中的最新行。 然而,它会多次返回同一行等于不删除的行该表中的金额。 所以基本上我还是会回到一个IEnumerable
包含所有重复。 为了解决这个问题,我改变了这种方法如下。
public IEnumerable<GuidelineCategoriesDto> GetAll(bool activeFilter = true)
{
// return _guidelineCategoriesRepo.GetAll().Select(x => ObjectMapper.Map<GuidelineCategoriesDto>(x)).ToList();
return ObjectMapper.Map<IEnumerable<GuidelineCategoriesDto>>(_guidelineCategoriesRepo.GetAll());
}
本(包括注释行)固定我的所有问题,并返回正确的数据。 我的问题是,为什么我提到的第一种方法,因为它做的方式行事。 我不熟悉MapTo
方法,因为我已经习惯了使用ObjectMapper
,但是从我发现这件事我现在还不能确定为什么这在当时的确的方式表现。
我DTO具有正确的AutoMap
数据的注释和DbSet
在DbContext
,如果有任何的事项。