Entity framework 实体框架和子对象的存储库模式

Entity framework 实体框架和子对象的存储库模式,entity-framework,asp.net-mvc-4,Entity Framework,Asp.net Mvc 4,我有一个具有以下层的应用程序: 特定WebAPI控制器->通用WebAPI控制器父类->通用存储库类->实体框架->数据库 我遇到的问题是,当我试图检索一个包含相关对象的对象时,例如BlogPost,以及Category和User,后两个都返回null。我在模型中定义了正确的关系(EF可以从中推断),并且在数据库中定义了外键关系 我想这是因为我的泛型存储库只对主类执行Get,而不包括其他类 我知道如果我加入“Include”,我可以得到其他的,但是我怎样才能用通用层做到这一点呢?如果我重写我的方

我有一个具有以下层的应用程序:

特定WebAPI控制器->通用WebAPI控制器父类->通用存储库类->实体框架->数据库

我遇到的问题是,当我试图检索一个包含相关对象的对象时,例如BlogPost,以及Category和User,后两个都返回null。我在模型中定义了正确的关系(EF可以从中推断),并且在数据库中定义了外键关系

我想这是因为我的泛型存储库只对主类执行Get,而不包括其他类

我知道如果我加入“Include”,我可以得到其他的,但是我怎样才能用通用层做到这一点呢?如果我重写我的方法,这可能意味着我不会在大多数实现中使用泛型方法


是否有另一种方法告诉EF检索子对象而不必求助于获取覆盖?

您是否启用了延迟加载?您是对的。默认情况下,它处于启用状态。如果我通过关闭它将其设置为显式加载,有没有办法将其限制为仅一个级别?类别和用户都有BlogPost的集合,我想阻止它获取所有的BlogPost。还是建议允许在LoadProperty方法中使用跨层传递表达式?我认为这篇博客文章准确地描述了您正在寻找的内容:看起来您正在尝试为实体开发CRUD服务,该服务已经存在,称为WCF数据服务。@Jurajr谢谢。这可能就是我需要的!请张贴答案,以便我选择。