C# 要通过自动映射选择特定列吗
假设我们有一个具有以下声明的用户实体:C# 要通过自动映射选择特定列吗,c#,linq-to-entities,automapper-6,C#,Linq To Entities,Automapper 6,假设我们有一个具有以下声明的用户实体: public class User { public string About { get; set; } public string FirstName { get; set; } public int Id { get; set; } public string LastName { get; set; } public string ProfileImageUrl { get; set; } } 配置自动映射: using AutoMapper;
public class User
{
public string About { get; set; }
public string FirstName { get; set; }
public int Id { get; set; }
public string LastName { get; set; }
public string ProfileImageUrl { get; set; }
}
配置自动映射:
using AutoMapper;
// ...
Mapper.CreateMap<User, UserSummary>();
使用自动映射器,它的工作非常完美
using AutoMapper.QueryableExtensions;
using System.Linq;
using (var context = new ApplicationContext())
{
var users = context.Users
.Project()
.To<UserSummary>()
.ToList();
}
现在如何使用自动映射器选择特定列而不是所有列?
我可以这样做,但没有意义
using (var context = new ApplicationContext())
{
var users = context.Users
.Select(u => new UserSummary
{
FirstName = u.FirstName,
LastName = u.LastName,
ProfileImageUrl = u.ProfileImageUrl
})
.ToList();
}
提前谢谢你 如果StateName是StateMaster和StateMasterDTO类中的属性名,则不需要使用.formMember(),因为AutoMapper足够智能,可以自动映射它。映射自是无用的。但请检查。我接受如果属性名称相同,它将自动映射,但这不是我的问题答案。不确定您面临的问题。请参考此链接:对不起,我不能很好地解释,我已经更新了我的问题。
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[About] AS [About],
[Extent1].[FirstName] AS [FirstName],
[Extent1].[LastName] AS [LastName],
[Extent1].[ProfileImageUrl] AS [ProfileImageUrl]
FROM [dbo].[Users] AS [Extent1]
go
using (var context = new ApplicationContext())
{
var users = context.Users
.Select(u => new UserSummary
{
FirstName = u.FirstName,
LastName = u.LastName,
ProfileImageUrl = u.ProfileImageUrl
})
.ToList();