我有一个头部和一个细节模型,它们之间有导航属性。我想获得包含详细信息的人头记录。这工作正常,但我得到的详细记录不包含我需要的所有属性,所以我尝试添加 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 中没有必要的属性。
Cats萌萌
相关分类