EF7標識未加載用戶擴展屬性

asp.net-core asp.net-identity entity-framework-core

我有一個擴展的IdentityUser類,它包含對我的數據庫中另一個實體的引用,但每當我嘗試使用UserManager獲取User時,引用的實體總是為空:

我的User類的實現

public class Usuario : IdentityUser
{
    public int ClienteID { get; set; }
    public virtual Cliente Cliente { get; set; }
}

使用用戶引用屬性的控制器

public class Usuario : IdentityUser
{
    public int ClienteID { get; set; }
    public virtual Cliente Cliente { get; set; }
}

我也嘗試從引用中刪除虛擬關鍵字,因此它是延遲加載的,但我不確定它是否已在EF7上實現。

關於如何實現這一點的任何想法?

熱門答案

我也遇到了這個問題,並在EF Core Documentation的幫助下解決了這個問題。您需要使用Include方法來填充相關數據。就我而言:

實體類:

public class ServiceEntity
{
    public int ServiceId { get; set; }
    public int ServiceTypeId { get; set; }

    public virtual ServiceTypeEntity ServiceType { get; set; } 

}

訪問我的DbContext對象:

public class ServiceEntity
{
    public int ServiceId { get; set; }
    public int ServiceTypeId { get; set; }

    public virtual ServiceTypeEntity ServiceType { get; set; } 

}

我不得不將該屬性設為“虛擬”。我的理解是EF Core需要能夠覆蓋相關對象的屬性以填充值。

此外,截至本發布日期,EF Core尚不支持延遲加載,僅支持Eager Loading和Explicit Loading。

希望這可以幫助!




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因