使用EF6和LINQ深度加载数据

马林

我正在使用ASP.NET Identity 2和Troy Goode的PagedList实现ASP.NET MVC 5 Web应用程序我需要在JqGrid中以以下格式显示UserRole数据:


用户名| 角色名称


这是我的UserRole类:

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; }
}

这是我的存储库方法

public virtual IQueryable<UserRole> GetAsQueryable(Expression<Func<UserRole, bool>> where)
    {
        return _dataContext.UserRoles.Where(where).AsQueryable();
    } 

这是我的Controller方法(GetAsPagedList方法只是对输入列表进行排序,将PagedList的.ToPagedList方法应用于该方法并返回其子集):

        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);
    } 

我无法弄清楚应该在哪里以及如何将通过外键链接到我的表(IE Users.UserName和Roles.Name)的表中的数据深度加载-您能帮忙吗?

广告网
_dataContext.UserRoles.Include("Role").Include("User").Where(where).AsQueryable();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 EF6 中使用数据注释

来自分类Dev

使用EF6加载数据库初始化程序时出错

来自分类Dev

使用EF6加载数据库初始化程序时出错

来自分类Dev

当我用EF6查询数据库时,使用LINQ有什么优势?

来自分类Dev

使用linq to SQL和EF6向数据库表中插入字符串或向数据库表添加字符串?

来自分类Dev

使用linq to SQL和EF6向数据库表中插入字符串或向数据库表添加字符串?

来自分类Dev

使用Linq返回EF6中的相关实体

来自分类Dev

无法创建实体数据模型-使用MySql和EF6

来自分类Dev

无法使用EF6和MYSQL生成实体

来自分类Dev

实体框架急于在EF4和EF6中加载差异

来自分类Dev

EF6渴望在POCO内加载

来自分类Dev

在 EF6 中加载相关实体

来自分类Dev

EF6 LINQ铸柱

来自分类Dev

EF6 LINQ铸柱

来自分类Dev

MVC5 EF6 CodeFirst使用两个数据库进行调试和发布

来自分类Dev

EF6代码首先使用数据注释来填充有关SQL表和列的描述

来自分类Dev

EF6代码首先使用数据注释来填充有关SQL Table和Colums的描述

来自分类Dev

使用EF6和.NET 4.6.1进行数据库迁移时遇到多个错误

来自分类Dev

无法使用Linq和EF 6从数据库获取最新数据

来自分类Dev

EF6,代码优先,启用迁移,“无法加载指定的元数据资源”

来自分类Dev

带有EF6的自动映射器投影和LINQ查询

来自分类Dev

EF6忽略相关数据

来自分类Dev

EF6和业务逻辑层

来自分类Dev

EF6和预生成的视图

来自分类Dev

EF6和分层架构

来自分类Dev

EF6 延迟加载:添加时加载整个集合?

来自分类Dev

在VS2012中并排使用EF6和EF5工具

来自分类Dev

在SQL数据库和EF6中保存标志枚举。这可能吗?

来自分类Dev

EF6和MySQL从模型生成数据库

Related 相关文章

热门标签

归档