繁体   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