可以使用EF6将包含的导航属性嵌套在Web API中吗?

大爸爸

在我的Web API服务中,使用带有的通用存储库/ uow模式EF6,我需要返回嵌套的导航属性。模型A具有模型B,模型B具有模型C,依此类推。像这样:

public class A
    {
        public int SomeID { get; set; }
        public ICollection<B> Bs { get; set; }
    }    
public class B
    {
        public int SomeID { get; set; }
        public ICollection<C> Cs { get; set; }
    }

我可以得到A中的B,但是B中的C为空。这就是我的做法:

// GENERIC REPOSITORY
public IQueryable<TEntity> Get(params Expression<Func<TEntity, object>>[] includes)
        {
            IQueryable<TEntity> query = _dbSet;
            if (includes != null)
            {
                foreach (var include in includes)
                    query = query.Include(include);
            }
            return query;
        }
//  FROM THE "A" CONTROLLER
public HttpResponseMessage Get()
        {
            HttpResponseMessage response;
            var results = _unitOfWork.A_Repository.Get(s => s.Bs);
            if (results == null)
            {
                response = new HttpResponseMessage(HttpStatusCode.NotFound);
            }
            else
            {
                response = Request.CreateResponse(HttpStatusCode.OK, results);
            }
            return response;
        }

我看不到如何从A控制器传递其他Lambda来加载B中的C。我可以看到如何在不使用通用存储库的情况下执行此操作。我也愿意使用OData,但无法弄清楚如何使用Web API中的此模式

我也尝试使用DbContext方法,但失败了:

public class MyContext : DbContext
    {
        public DbSet<A> As { get; set; }
        public DbSet<B> Bs { get; set; }
        public DbSet<C> Cs { get; set; }

        public MyContext()
            : base("MyDBContext")
        {
        }    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<B>().HasRequired(i => i.C);
            Bs.Include(i => i.C);
        }
    }
尼古拉·拉多萨夫列维奇(Nikola Radosavljevic)

您可以使用单次Include呼叫进行此操作

_context.A_Repository // where to get from
    .Include(a => a.Bs.Select(b => b.Cs.Ds.Es)) // what to include
    .Where(a => a.IsCool == true) // how to filter
    .ToList(); // materialize result

请参阅EntityFramework文档的备注

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用Clarity将标头嵌套在stackview中吗

来自分类Dev

将引用属性的引用属性加载到包含EF6中

来自分类Dev

EF6:在DbSet.Local中包括导航属性

来自分类Dev

使用CSS将图像嵌套在导航栏中

来自分类Dev

可以将命令替换嵌套在变量替换中吗?

来自分类Dev

EF 6在包含导航属性的包含项中添加子句

来自分类Dev

我可以在EF6中使用外键来唯一约束吗?

来自分类Dev

在EF6中使用原始SQL查询时可以调用SaveChanges吗

来自分类Dev

我可以使用REST API在Smartsheets中检测单元格属性(例如颜色)吗

来自分类Dev

附件可以嵌套在MIME中吗?

来自分类Dev

我可以使用Java API将图像文件存储在Firebase中吗

来自分类Dev

在EF6代码中,首先我可以更改导航属性值,然后断开关系,并将两个更改都保存在一个事务中吗?

来自分类Dev

具有导航属性的EF6一对多流利的api

来自分类Dev

具有导航属性的EF6一对多流利的api

来自分类Dev

如何在渴望加载的ASP.NET MVC中的EF6中包括导航属性的多个导航属性?

来自分类Dev

为什么在EF6中调用dbContext.Save后重置导航属性

来自分类Dev

我们可以使用OAuth来验证我的Web API中的使用者吗?

来自分类Dev

VBA中可以使用嵌套函数吗?

来自分类Dev

我可以使用Web API依赖CallContext吗?

来自分类Dev

如何使用导航v5 +将Stack Navigator嵌套在Drawer Navigator中

来自分类Dev

我可以使用Spotify API将高频信号嵌入到播放列表中吗

来自分类Dev

您可以将匿名函数嵌套在MATLAB类的默认值中吗?

来自分类Dev

我可以使用Java API在Firebase中存储图像文件吗?

来自分类Dev

我可以使用Dropbox V2 API中的文件ID搜索/获取文件吗?

来自分类Dev

您可以使用私有API来挂接iOS中的系统函数调用吗?

来自分类Dev

bigquery python API中的查询可以使用python变量吗?

来自分类Dev

我可以使用REST API从SF中检索Salesforce数据吗?

来自分类Dev

我可以使用MPI中的API读取远程文件吗?

来自分类Dev

域可以嵌套在node.js中吗?

Related 相关文章

  1. 1

    我可以使用Clarity将标头嵌套在stackview中吗

  2. 2

    将引用属性的引用属性加载到包含EF6中

  3. 3

    EF6:在DbSet.Local中包括导航属性

  4. 4

    使用CSS将图像嵌套在导航栏中

  5. 5

    可以将命令替换嵌套在变量替换中吗?

  6. 6

    EF 6在包含导航属性的包含项中添加子句

  7. 7

    我可以在EF6中使用外键来唯一约束吗?

  8. 8

    在EF6中使用原始SQL查询时可以调用SaveChanges吗

  9. 9

    我可以使用REST API在Smartsheets中检测单元格属性(例如颜色)吗

  10. 10

    附件可以嵌套在MIME中吗?

  11. 11

    我可以使用Java API将图像文件存储在Firebase中吗

  12. 12

    在EF6代码中,首先我可以更改导航属性值,然后断开关系,并将两个更改都保存在一个事务中吗?

  13. 13

    具有导航属性的EF6一对多流利的api

  14. 14

    具有导航属性的EF6一对多流利的api

  15. 15

    如何在渴望加载的ASP.NET MVC中的EF6中包括导航属性的多个导航属性?

  16. 16

    为什么在EF6中调用dbContext.Save后重置导航属性

  17. 17

    我们可以使用OAuth来验证我的Web API中的使用者吗?

  18. 18

    VBA中可以使用嵌套函数吗?

  19. 19

    我可以使用Web API依赖CallContext吗?

  20. 20

    如何使用导航v5 +将Stack Navigator嵌套在Drawer Navigator中

  21. 21

    我可以使用Spotify API将高频信号嵌入到播放列表中吗

  22. 22

    您可以将匿名函数嵌套在MATLAB类的默认值中吗?

  23. 23

    我可以使用Java API在Firebase中存储图像文件吗?

  24. 24

    我可以使用Dropbox V2 API中的文件ID搜索/获取文件吗?

  25. 25

    您可以使用私有API来挂接iOS中的系统函数调用吗?

  26. 26

    bigquery python API中的查询可以使用python变量吗?

  27. 27

    我可以使用REST API从SF中检索Salesforce数据吗?

  28. 28

    我可以使用MPI中的API读取远程文件吗?

  29. 29

    域可以嵌套在node.js中吗?

热门标签

归档