Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在针对SQL Server执行列之前使用AutoMapper筛选列_C#_Entity Framework_Automapper - Fatal编程技术网

C# 如何在针对SQL Server执行列之前使用AutoMapper筛选列

C# 如何在针对SQL Server执行列之前使用AutoMapper筛选列,c#,entity-framework,automapper,C#,Entity Framework,Automapper,我想使用AutoMapper将实体映射到DTO对象。我想筛选我的列,然后根据数据库执行它们,但它将获取所有COL,然后进行映射: AutoMapper.Mapper.Initialize(cfg => { cfg.CreateMap<User, UserDTO>(); /* etc */ }); ShamsEntities Entities = new ShamsEntities(); var Res = Entities.Users.AsEnu

我想使用AutoMapper将实体映射到DTO对象。我想筛选我的列,然后根据数据库执行它们,但它将获取所有COL,然后进行映射:

 AutoMapper.Mapper.Initialize(cfg => {
     cfg.CreateMap<User, UserDTO>();
     /* etc */
 });

 ShamsEntities Entities = new ShamsEntities();

 var Res = Entities.Users.AsEnumerable().Select(role => Mapper.Map<User, UserDTO>(role)).ToList();
下面是我的选择查询:

 SELECT [Extent1].[ID] AS[ID],
 [Extent1].[FirstName] AS [FirstName], 
 [Extent1].[LastName] AS [LastName], 
 [Extent1].[Email] AS [Email], 
 [Extent1].[UserName] AS [UserName], 
 [Extent1].[Password] AS [Password], 
 [Extent1].[DiskUsed] AS [DiskUsed], 
 [Extent1].[DiskUsage] AS [DiskUsage], 
 [Extent1].[Status] AS [Status], 
 [Extent1].[Telephone] AS [Telephone], 
 [Extent1].[Mobile] AS [Mobile], 
 [Extent1].[Skype] AS [Skype], 
 [Extent1].[IM] AS [IM], 
 [Extent1].[GoogleUserName] AS [GoogleUserName], 
 [Extent1].[CompanyName] AS [CompanyName], 
 [Extent1].[CompanyAddress] AS [CompanyAddress], 
 [Extent1].[CompanyTelephone] AS [CompanyTelephone], 
 [Extent1].[CompanyFax] AS [CompanyFax], 
 [Extent1].[CompanyEmail] AS [CompanyEmail], 
 [Extent1].[Tets] AS [Tets] ...  
您可以使用Automapper的“可查询外部”

调用
ProjectTo
而不是调用
Map

var Res = Entities.Users.AsQueryable().Select(role => Mapper.ProjectTo<UserDTO>(role)).ToList();
var Res=Entities.Users.AsQueryable().Select(role=>Mapper.ProjectTo(role)).ToList();
请参阅。

您可以使用Automapper的“可查询外部”

调用
ProjectTo
而不是调用
Map

var Res = Entities.Users.AsQueryable().Select(role => Mapper.ProjectTo<UserDTO>(role)).ToList();
var Res=Entities.Users.AsQueryable().Select(role=>Mapper.ProjectTo(role)).ToList();
请参阅。

如果要映射(使用AutoMapper)并仅从数据库中检索所需的列,则还应安装

而不是:

var Res = Entities.Users.AsEnumerable().Select(role => Mapper.Map<User, UserDTO>(role)).ToList();
请注意,您不需要调用
AsEnumerable()
,也不需要使用
Select()
,它被
ProjectTo()
替换

更多信息。

如果要映射(使用AutoMapper)并从数据库中检索所需的列,则还应安装

而不是:

var Res = Entities.Users.AsEnumerable().Select(role => Mapper.Map<User, UserDTO>(role)).ToList();
请注意,您不需要调用
AsEnumerable()
,也不需要使用
Select()
,它被
ProjectTo()
替换

更多信息

var Res = Entities.Users.ProjectTo<UserDTO>().ToList();