首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于EF6和LINQ的深部加载数据

基于EF6和LINQ的深部加载数据
EN

Stack Overflow用户
提问于 2014-07-25 19:11:55
回答 1查看 210关注 0票数 0

我正在实现一个ASP.NET MVC 5 web应用程序使用ASP.NET标识2和特洛伊古德的PagedList。我需要以以下格式以UserRole格式显示JqGrid数据:

用户名\角色名

这是我的UserRole课程:

代码语言:javascript
复制
public class UserRole : Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole<int>
{
    [ForeignKey("UserId")]
    public virtual User User { get; set; }

    [ForeignKey("RoleId")]
    public virtual Role Role { get; set; }
}

这是我的存储库方法

代码语言:javascript
复制
public virtual IQueryable<UserRole> GetAsQueryable(Expression<Func<UserRole, bool>> where)
    {
        return _dataContext.UserRoles.Where(where).AsQueryable();
    } 

这是method方法( GetAsPagedList方法只是命令输入列表,将PagedList的.ToPagedList方法应用到它,并返回其中的一个子集):

代码语言:javascript
复制
        public ActionResult GridData(MvcJqGrid.GridSettings gridSettings)
        {
        IQueryable<UserRole> items = _repository.GetAsQueryable();

        IPagedList<T> pagedOrderedItems = PagingHelper<UserRole>.GetAsPagedList(
            items,
            gridSettings.SortOrder, gridSettings.SortColumn,
            gridSettings.PageIndex, gridSettings.PageSize);

        var jsonData = new
        {
            total = pagedOrderedItems.TotalItemCount / gridSettings.PageSize + 1,
            page = gridSettings.PageIndex,
            records = pagedOrderedItems.TotalItemCount,
            rows = (
                from c in pagedOrderedItems
                select new
                {
                    id = c.UserId + '-' + c.RoleId,
                    cell = new[]
                    {
                        "Edit",
                        "Details",
                        // TODO: something like this:
                        // [UserName] = c.User.UserName
                        // [RoleName] = c.Role.Name
                        c.Role.Name
                    }
                }).ToArray()
        };

        return Json(jsonData, JsonRequestBehavior.AllowGet);
    } 

我能找出我应该在哪里以及如何从通过外键链接到我的表(即Users.UserName和Roles.Name)的表中深入加载数据--您能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-26 03:02:30

代码语言:javascript
复制
_dataContext.UserRoles.Include("Role").Include("User").Where(where).AsQueryable();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24966191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档