Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 如何使用.net core和Entity Framework core和Identity从数据库中获取特定列?_C#_Asp.net_Entity Framework_Asp.net Core_Asp.net Identity - Fatal编程技术网

C# 如何使用.net core和Entity Framework core和Identity从数据库中获取特定列?

C# 如何使用.net core和Entity Framework core和Identity从数据库中获取特定列?,c#,asp.net,entity-framework,asp.net-core,asp.net-identity,C#,Asp.net,Entity Framework,Asp.net Core,Asp.net Identity,我已经试着让这个查询工作了一段时间,但我似乎无法做到这一点,问题是我不能只返回我想要的那些列 var thread = context.threads.Include(t => t.posts).ThenInclude(p => p.ApplicationUser).Include(t => t.ApplicationUser).Include(t => t.movie).Where(t => t.Id == id) 该查询返回ApplicationUser的所有

我已经试着让这个查询工作了一段时间,但我似乎无法做到这一点,问题是我不能只返回我想要的那些列

var thread = context.threads.Include(t => t.posts).ThenInclude(p => p.ApplicationUser).Include(t => t.ApplicationUser).Include(t => t.movie).Where(t => t.Id == id)
该查询返回ApplicationUser的所有信息,包括电子邮件和哈希密码,当然我不希望我尝试这样做

var thread = context.threads.Include(t => t.posts).ThenInclude(p => p.ApplicationUser).Include(t => t.ApplicationUser).Include(t => t.movie).Where(t => t.Id == id).Select(t => new
            {
                title = t.title,
                body = t.body,
                threadUserName = t.ApplicationUser.UserName,
                postsThread = t.posts
            });
但是,当我必须查询帖子的用户名时,我遇到了一个障碍,因此来自ThenInclude的数据,尝试了类似于
t.posts.ApplicationUser.UserName
和类似的操作,但它不起作用,我如何查询帖子的用户名?
ApplicationUser是从Identity net核心包中的Identity YUser类派生的类

对于查询
postsThread
,您可以添加一个新的
Select
,类似于:

var thread = _appDbContext.Threads
                          .Include(t => t.Posts)
                          .ThenInclude(p => p.ApplicationUser)
                          .Include(t => t.ApplicationUser)
                          .Where(t => t.Id == id)
                          .Select(t => new
                                       {
                                            title = t.Title,
                                            body = t.Body,
                                            threadUserName = t.ApplicationUser.UserName,
                                            postsThread = t.Posts.Select(p => new {
                                                                                      p.Content,
                                                                                      p.ApplicationUser.UserName
                                                                                  })
                                       })
                          .ToList();

您是否遇到任何错误,到底是什么不起作用?我在尝试执行
.posts.ApplicationUser
时遇到一个错误,即posts不包含应用程序用户,即使它有一个
公共虚拟应用程序用户ApplicationUser{get;set;}