为什么包括不工作在这里抛出任何错误?

时间:2019-11-03 18:04:34

标签: entity-framework-core ef-code-first ef-core-2.2

我正在使用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,它会完美运行并返回结果,而不会填充导航属性。

0 个答案:

没有答案