EF Core ICollection 不包含“包含”的定义

我有一个头部和一个细节模型,它们之间有导航属性。我想获得包含详细信息的人头记录。这工作正常,但我得到的详细记录不包含我需要的所有属性,所以我尝试添加 Include()。


EF Core 说ICollection<RequestDetail> does not contain a definition for 'Include'。我已经尝试过 List<> 导航类型,Microsoft.EntityFrameworkCore并且System.Linq都在我的使用中。


我的模型:


public class RequestHead

{

    public string Id { get; set; }

    public DateTime CreateDate { get; set; }

    public int CreateUserId { get; set; }

    [ForeignKey("CreateUserId")]

    public User CreateUser { get; set; }


    public virtual ICollection<RequestDetail> Details { get; set; }

}

public class RequestDetail

{

    [Key]

    public int Id { get; set; }


    public string RequestHeadId { get; set; }        

    [ForeignKey("RequestHeadId")]

    public RequestHead RequestHead { get; set; }


    public DateTime CreateDate { get; set; }

    public int CreateUserId { get; set; }

    [ForeignKey("CreateUserId")]

    public User CreateUser { get; set; }

}

选择:


 var requests = (from r in _ctx.RequestHeads

                select new RequestDTO {

                    AcceptDate = r.AcceptDate,

                    AcceptUser = r.AcceptUser,

                    AcceptUserId = r.AcceptUserId,

                    Details = r.Details != null ? 

 r.Details.Include(x => x.BuyerUser).Select(x => new 

 RequestDetailDTO(x, x.Attachments.ToArray(), x.Product)).ToArray() : null});

更新#1:


这不是 Json.ReferenceLoopHandling 问题。它已经在 startup.cs 中被忽略了,我的问题是我不能在我的代码中使用 Include() ,而不仅仅是在 json 中没有必要的属性。


莫回无
浏览 424回答 2
2回答

Cats萌萌

如果在 .NET 上开发 - 请确保您使用的是 System.Data.Entity 命名空间。using&nbsp;System.Data.Entity;如果在 .NET Core 上 - 请改用 Microsoft.EntityFrameworkCore。using&nbsp;Microsoft.EntityFrameworkCore;
打开App,查看更多内容
随时随地看视频慕课网APP