问题描述
我正在学习Net Core,并且正在使用Entity Framework Core 2.1生成控制器。
我上了这些课:
public partial class Posts
{
public int Id { get; set; }
//Some other atributes
public virtual ICollection<PostsTags> PostsTags { get; set; }
}
public partial class Tags
{
public int Id { get; set; }
public string Nombre { get; set; }
public List<PostsTags> PostsTags { get; set; }
}
public partial class PostsTags
{
public int PostId { get; set; }
public int TagId { get; set; }
public virtual Tags Tags { get; set; }
public virtual Posts Posts { get; set; }
}
事实是,由于我要搜索的多对多关系,因此我需要此中间表。
[{"id":1,"fecha":"2020-09-13T20:07:00","titulo":"Error 1001 al instalar Agilis HTTP Server","ismPostId":3800,"votos":0,"publicadorId":1,"usuarios":{"nombre":"Robert","apellido":"Gotsik","codigo":"rg","password":"rg","id":1,"estado":0},"alcance":0,"texto":"Some explanation here","postsTags":[{"postId":1,"tagId":1,"tags":{"id":1,"nombre":"FICS","postsTags":[
JSON的结尾被切掉。
我已经在OnModelCreating中添加了流利的API:
modelBuilder.Entity<PostsTags>().HasKey(pt => new { pt.PostId,pt.TagId });
解决方法
我已经解决了这个问题。
在ConfigureServices中,我添加了以下内容:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddJsonOptions(options =>
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
这将注释循环递归。