Linq替换子查询的字段

时间:2010-01-29 11:38:39

标签: .net linq entity-framework linq-to-entities datacontext

我有一个包含用户和角色的数据库。表Users表示每个用户绑定到一个角色(一个且只有一个)时对表角色的引用。 当我使用linq检索用户时,字段“role”在数据网格中显示为整数(这是表Roles的主键)。但是,我想将用户的字段Role替换为Role表的实际Name字段。关于如何做的任何想法?

datacontext的代码现在是默认代码,我应该使用什么linq查询来获取我需要的内容?

public IQueryable<Usuarios> GetUsuarios()
{
        return this.ObjectContext.Usuarios;
}

2 个答案:

答案 0 :(得分:1)

执行此操作的规范方法是为数据网格设置特定于视图的模型,并使用LINQ选择特定于视图的模型。我的例子假设LINQ to SQL。

public IEnumerable<UserWithRoles> GetUsersWithRoles()
{
     return this.ObjectContext
                .Users
                .Select( u => new UserWithRole { Name = u.Name, ..., Role = u.Roles.First().Name } );
}

答案 1 :(得分:0)

这样做是为了尽早将角色绑定到用户:

return this.ObjectContext.Usuarios.Include("Roles");