可能是一個簡單的問題,但有些東西我無法理解。EF6自動包含嵌套對象
我的結構捆綁 - > BundleMembers - > InsuranceTypes
當我檢索單個記錄表BundleMembers,我包括捆綁。 EF6自動包含在捆綁
例如,所有BundleMembers:
public async Task<List<BundleMember>> GetBundleMembers(string userId, bool includeBundle, bool includeInsuranceTypes)
{
var bundleMembers = db.BundleMembers.Where(m => string.Equals(m.UserId, userId, StringComparison.CurrentCultureIgnoreCase));
if (includeBundle)
{
bundleMembers = bundleMembers.Include(o => o.Bundle);
}
if (includeInsuranceTypes)
{
bundleMembers = bundleMembers.Include(m => m.BundleMemberInsuranceType);
}
return await bundleMembers.ToListAsync();
}
我調用該函數是這樣的:
GetBundleMembers(_userManager.GetUserId(User), true, false)
我必須從捆綁訪問數據,避免這種情況?
編輯1: 我的數據模型是這樣的:
public class Bundle
{
public int BundleId { get; set; }
public State State { get; set; }
public ICollection<BundleMember> Members { get; set; }
public ICollection<InviteLink> InviteLinks { get; set; }
public string BundleName { get; set; }
public string Description { get; set; }
public string ImagePath { get; set; }
}
public enum State
{
NotApproved,
Approved,
Disabled,
Rejected
}
public class BundleMember
{
public ApplicationUser User { get; set; }
public string UserId { get; set; }
public int BundleMemberId { get; set; }
public int BundleId { get; set; }
public Bundle Bundle { get; set; }
public bool Admin { get; set; }
public int Price { get; set; }
public int Coverage { get; set; }
public ICollection<BundleMemberInsuranceType> BundleMemberInsuranceType { get; set; }
}
我不包括BundleMemberInsuranceType
和InviteLink
,因爲他們工作的罰款。 ApplicationDbContext的
相關部分:
public DbSet<Bundle> Bundles { get; set; }
public DbSet<BundleMember> BundleMembers { get; set; }
你確定附加數據沒有被加載嗎?如果你已經標記了你的屬性,虛擬機會在你請求時加載數據。 (這是調試器將會做什麼) – Mo09890
因爲我不是100%確定當延遲加載被觸發時,所以我不能說我肯定這不是問題。 Members屬性是非公開的,所以這不是問題。 我可以從visual studio的輸出窗口看到數據正在被調用而沒有調試器。 – Frey
你可以發佈你的實體類,以及你的相關部分的上下文類嗎? – jpgrassi