当前位置: 首页 > 知识库问答 >
问题:

使用EntityFramework[duplicate]将相关实体加载到存储库中

柳志专
2023-03-14

在我的模型中,我有一个user聚合根,每个根都有一个关联的事务的集合。每个事务都有一个反向导航属性用户

我需要一次获取所有的事务,这导致在我的UserRepository中出现以下查询

public ICollection<ITransaction> GetAllTransactions() {

    return (from u in Set.Include("Transactions") 
            from t in u.Transactions
            select t).ToList();       
}

set是来自EF上下文的idbset

问题是懒惰加载没有实现(我也不想实现它),查询后的transaction.user属性是null。所有的东西都正确地通过EF映射。

要检索具有非空用户的所有事务的查询应该是什么?

我用的是EF6。

共有1个答案

裴畅
2023-03-14

您需要实际包含transaction.user。它可以在最终投影到transaction之后完成,如下所示

public ICollection<ITransaction> GetAllTransactions()
{    
    return Set.SelectMany(u => u.Transactions).Include(t => t.User).ToList();       
}

 类似资料:
  • 问题内容: 我有两个实体: 保存首选项时,我具有accountId,但没有Account实体。在这种情况下,如何保存首选项? 加载帐户实体并在首选项上进行设置?对我来说,这似乎是对数据库的错误旅行。 是否具有一个可持久保存的accountId字段并使Account字段为只读?同时拥有一个accountId字段和一个Account字段似乎多余吗? 使用NamedQuery保留首选项?我希望只是通用地

  • 我正在使用EF Core(v1.1.3)和C#。 在我的单元测试中,我使用代码优先db模型创建了一个sqlite内存数据库,然后用一些测试数据填充它。但是,当从dB加载实体列表时,相关实体会被填充,尽管没有使用“。包含”。 如果我使用相同的模型来创建一个实际的磁盘数据库,并进行相同的加载,那么只有在使用<代码>时,才会加载相关的实体。包括。 这是sqlite内存实现(v1.1.0)中的错误,还是我

  • 我希望像查询NodeEntity一样查询RelationshipEntity。 软件包信息: 此存储库不工作。 getEmployeeWorkingOnProject(String,String)返回NULL 我在关键字之后进行了修改,例如将其从修改为像这样的别名,并且还尝试更改了返回中别名的顺序。 我希望获得与特定员工和特定项目相关联的所有状态(边缘)。 或 或其他类型的类似结果,其中关系实体持

  • 我在使用JPA时遇到了一些困难。我没有得到任何异常,但我不能保存任何东西到数据库。我从Hibernate到Jpa,在那里一切都工作得很好。下面是我的文件 Application.Properties: 存储库: 服务: 我在提交表单时得到了200的响应,但在数据库中找不到数据

  • 我在一个项目中工作,我有一个通用的服务和存储库层。我正在使用Automapper将DTO映射到实体模型。一个实体可以有一个或多个DTO。我的问题是,如何告诉我的通用存储库类哪个DTO应该返回到服务层? 实体 DTOs 通用存储库 通用存储库实现 通用服务 通用服务实现 实体存储库和服务 控制器我想在泛型服务中调用findBy方法,并选择要返回的DTO。合同类是我测试的一部分,但它不起作用。我是否必

  • 我在向数据库添加一个包含与现有对象关系的实体时遇到了麻烦。我搜索了很多,但找不到合适的解决方案。我会尽可能简单地描述这个。 在存储库中,我添加了这样的记录。这是泛型类 现在当我尝试添加这样的新记录时 商店关系被添加为新商店,并获得新ID。有人知道我如何解决这个问题吗? 数据库示例: 这是我关于stackoverflow的第一个问题。