[英]EF Core ICollection does not contain a definition for 'Include'
我有一個頭像和一個細節模型,它們之間具有導航屬性。 我想獲得包括詳細信息的正式記錄。 這工作正常,但我得到的詳細記錄並不包含我需要的所有屬性,因此我嘗試添加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中已經被忽略,我的問題是,即使在我的代碼中,我不僅不能在json中沒有必要的屬性,也無法使用Include()。
就像錯誤提示一樣:您的屬性r.Details是ICollection(導航屬性),並且不公開.Include()方法,該方法僅可用於IQueryables(擴展方法)。 包含路徑應從返回的IQueryable指向您希望包含的導航屬性,在您的情況下,該內容應類似於
.Include(x=>x.Details.Select(y=>y.BuyerUser))
如果在.NET上進行開發-請確保您使用的是System.Data.Entity命名空間。
using System.Data.Entity;
如果在.NET Core上-請改用Microsoft.EntityFrameworkCore。
using Microsoft.EntityFrameworkCore;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.