![](/img/trans.png)
[英]How get data from asp.net web api in asp.net mvc controller in the same project
[英]How to return a relational data from DB in ASP.Net Core Web API Controller
我有3个关系表
1 个帖子、2 个评论、3 个图像
“评论”和“图像”表具有“帖子”外键。 我想使用 GET 方法在 ASP.Net Core Web API 中一起返回有关帖子的完整信息。 我知道如何创建 controller 之类的东西。 我的问题是关于检索和返回数据。
如果您使用的是EFCore
,则可以这样做。
Constructor
注入你的DbContext
DB
读取数据[Route("api/[controller]")]
[ApiController]
public class PostController : BaseController
{
private readonly ApplicationDbContext _dbContext;//Your DbContext
public PostController(ApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
[HttpGet]
public IActionResult Get()
{
var data = _dbContext.Post.Include(a=> a.Comments).Include(a=> a.Images).ToList();
return Ok(data);
}
}
在.Net Core中, Lazy loading
是禁用的,当您 select 时,默认情况下不会加载来自数据库的表。
如果要获取所有具有关系的数据,则必须使用Include
来加载这样的关系
dbContext.Post.Include(a=> a.Comments).Include(a=> a.Images).ToList();
你的数据库表应该是这样的
public class Post
{
public ICollection<Images> Images { get; set; }
public ICollection<Comments> Comments { get; set; }
}
public class Comments
{
public Post Post { get; set; }
}
public class Images
{
public Post Post { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.