postgresql - EF Core 使用对象内部对象和 FK 查询 DTO
问题描述
我有 BookDTO 类和 Book 类
有一个属性 Reviewer 和 FK Reviewer
public class BookDTO
{
[ForeignKey("Reviewers")]
public Reviewers Reviewer { get; set;}
public string Id { get; set; }
public string Description { get; set; }
}
public class Book
{
public Book()
{
Authors = new List<BookAuthor>();
}
[ForeignKey("Reviewers")]
public Reviewers Reviewer { get; set;}
public string Id { get; set; }
public string Description { get; set; }
public List<BookAuthor> Authors { get; set; }
}
}
Reviewer 类内部有另一个对象,称为 Grade
public class Reviewer
{
public string Id { get; set; }
public string Name { get; set; }
public Grade Grade ( get; set; }
[ForeignKey("GradeID")]
public string GradeID{ get; set; }
}
最后年级班有
public class Grade
{
public string GradeID { get; set; }
public string Comment { get; set; }
}
我想从 BookDTO 查询所有级别的数据到 Grade。这是我目前拥有的
return await _context.Book.Select(x => new BookDTO
{
Id = x.Id,
Description = x.Description,
Reviewer = x.Reviewer,
}).ToListAsync();
我期待有这样的东西
{
"id": "BOOK1",
"description": "FICTION 101",
"Reviewer": {
"id": "JS",
"name": "Jason",
"Grade": {
"GradeID" : "1",
"Comment" : "Good job",
},
"GradeID": "1"
},
"ReviewerId": "JS"
}
相反,我得到的成绩返回为空
{
"id": "BOOK1",
"description": "FICTION 101",
"Reviewer": {
"id": "JS",
"name": "Jason",
"Grade": null,
"GradeID": "1"
},
"ReviewerId": "JS"
}
我该怎么做?
解决方案
推荐阅读
- python - 如何将多个数字添加到多个列表
- excel - 如何将一个工作表从打开的工作簿复制到关闭的工作簿?
- autodesk-forge - 调用工作项 api 时,Autodesk.DesignAutomation 在位置 0 处以 JSON 格式返回 Unexpected token S
- numpy - Numpy将二维矩阵的列作为数组
- javascript - 如何将 dateRange-array 传递给 jquery 函数
- node.js - 节点 Mongodb 驱动程序:聚合结果不同
- c - 使用拼接系统调用没有输出
- c# - System.Data.SqlClient.SqlException:''=' 附近的语法不正确。' 关于数据表和对象
- python - 如何使用 PyBind11 将用 C++ 编写的 dll 模块导入 Python
- javascript - 如何在聊天中对消息进行分组,而不是将每条新消息都放在一个新部分中?