我正在使用ASP.NET Core 2.2和EF Core。当我使用include时,它不返回任何数据或任何错误。如果删除include,它将返回数据,但不会加载关系。
[HttpGet]
public IEnumerable<Auction> Get()
{
return context.Auctions
.Include(x => x.Details).ToList();
}
public class Auction
{
[Key]
public int ID { get; set; }
...
...
...
public virtual ICollection<AuctionItemDetail> Details { get; set; }
//public virtual ICollection<Bid> Bids { get; set; }
[Required(ErrorMessage = "Please upload at least 1 image for display")]
public virtual ICollection<AuctionItemImage> Images { get; set; }
public Auction()
{
this.Details = new HashSet<AuctionItemDetail>();
this.Images = new HashSet<AuctionItemImage>();
}
}
这是我的DBContext类。流畅的api构建器有什么问题吗?
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasMany(x => x.Auctions)
.WithOne(x => x.User)
.HasForeignKey(x => x.UserID);
modelBuilder.Entity<Auction>()
.HasMany(x => x.Details)
.WithOne(x => x.Auction)
.HasForeignKey(x => x.AuctionID);
modelBuilder.Entity<Auction>()
.HasMany(x => x.Images)
.WithOne(x => x.Auction)
.HasForeignKey(x => x.AuctionID);
}
编辑:
如果删除include方法,它将返回结果。如果我使用include方法,它将返回错误:
无法加载资源:net :: ERR_HTTP2_PROTOCOL_ERROR
我在启动时使用非SSL端口删除了app.UseHttpsRedirection()。现在,它给我错误:net :: ERR_CONNECTION_RESET 200(确定)(如果我使用include方法)。如果我删除了include,它会完美运行并返回结果,而不会填充导航属性。