C# 有没有办法只为某些列加载ApplicationUser?
我有一个与ApplicationUser模型相关的Post模型类。当我在这里加载ApplicationUser所有数据时,从controller开始。我不想加载用户密码。我只想加载用户的某些列数据 模型类:C# 有没有办法只为某些列加载ApplicationUser?,c#,entity-framework,asp.net-core,C#,Entity Framework,Asp.net Core,我有一个与ApplicationUser模型相关的Post模型类。当我在这里加载ApplicationUser所有数据时,从controller开始。我不想加载用户密码。我只想加载用户的某些列数据 模型类: public class Post { public int PostId { get; set; } public string PostContent { get; set; } public string ClientId { get; set;
public class Post
{
public int PostId { get; set; }
public string PostContent { get; set; }
public string ClientId { get; set; }
public ApplicationUser Client { get; set; }
}
控制器:
var Post = await _context.Post.Include(x=>x.Client).ToListAsync();
注意:我使用了.Net核心标识
感谢阅读。我不相信您只能选择
.Client
的某些属性。但是,您可以使用dto:
var PostDto = await _context.Post
//.Where
.Select( p => new PostDTo {
PostId,
PostContent,
Username = p.Client.UserName
})
.ToListAsync();
或
请注意,通过使用DTO而不是公开表,可以保证从不公开不需要的数据。我不关心DTO。现在我完成了我的任务。谢谢你的帮助#保持安全。
var PostDto = await _context.Post
//.Where
.Select( p => new PostDTO {
PostId,
PostContent,
User = new UserDTO
{
p.Client.UserName,
...
}
})
.ToListAsync();