簡體   English   中英

實體框架不會加載導航屬性

[英]Entity framework does not load navigation properties

我將EF和POCO一起用於我的一個項目。

數據上下文和pocos已成功創建,我可以獲取數據。 有一個問題:導航屬性始終為null。

我有這兩節課:

public class UserProfile {

public string Username { get; set; }
public int RoleId { get; set; }
public virtual SecurityRole SecurityRole { get; set; }

}

public class SecurityRole {

public int roleId { get; set; }
public string RoleDescription { get; set; }

}

public class DataContext : ObjectContext {

public ObjectSet<UserProfile> UserProfiles { get; set; }
public ObjectSet<SecurityRole> SecurityRoles { get; set; }

public DataContext() : base("name=datacontext_entities", "datacontext_entities") {

UserProfiles = CreateObjectSet<UserProfile>();
SecurityRole = CreateObjectSet<SecurityRole>();

}

}

該數據庫包含來自用戶配置文件和安全角色的對象。 外鍵已設置。 我通過簡單的linq查詢訪問這些元素: Db.UserProfile.FirstOrDefault(f => f.Username == username); Db是我的數據上下文。

整個用戶配置文件對象將具有數據,但導航屬性SecurityRole始終為null。

我想念什么嗎?

我認為EF代碼首次工作的方式應該是在您的SecurityRole類上將Id屬性設置為SecurityRoleId或其他內容,或對其應用[Key]屬性。 那應該工作

public class SecurityRole 
{
    [Key]
    public int roleId { get; set; }
    public string RoleDescription { get; set; }

}

要么

public class SecurityRole 
{
    public int SecurityRoleId { get; set; }
    public string RoleDescription { get; set; }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM