c# - linq 异步调用以映射到一个对象 2 个具有外键的表
问题描述
我知道标题可能听起来很糟糕,但这是我能想到的最好的。(也是我在堆栈上的第一个问题:P)
我已经反向设计了一个数据库,并且我有一些看起来像这样的类:
public class Orders
{
public int Id { get; set; }
public int LocationId { get; set; }
...
public Locations Location { get; set; }
public Users User { get; set; }
}
public class Locations
{
public int Id { get; set; }
...
}
我还有 2 个带有外键“LocationId”的 SQL 表“订单”和“位置”
如果我想像这样使用 LINQ 进行选择:
var ordersResult = await _context.Orders.Where(o => <some condition>).ToListAsync();
然后它将用所有属性填充我的对象,但 Location 对象属性将为空。这是有道理的,因为我没有加入或类似的事情。
我不知道如何编写 LINQ 语句,以便它只在一次异步调用中填充整个对象,而无需多次调用数据库。
我也试过这样做:
var ordersResult = await _context.Orders.Join(_context.Locations,
orders => orders.LocationId,
locations=> locations.Id,
(orders, locations) => new { Orders = orders, Locations = locations })
.Where(orders_users => <some condition>)
.Select(o => o.Orders)
.ToListAsync();
但这仍然给我的 Locations 属性一个空值。
在此先感谢您的帮助!
解决方案
使用包括
await _context.Orders.Include("Location").Where(o => <some condition>).ToListAsync();
推荐阅读
- django - 站点包的 Django 错误:“模型站点已在应用程序‘站点’中注册”
- azure - Azure 数据流 - 源查询下推
- php - 使用 SQL 的 PHP 自动完成
- reactjs - 使用 React Native 中 Flatlist 中自定义元素的参数进行导航:空参数
- r - 为不显示地图数据创建缩放限制的功能尚不可用
- python - 来自 WEKA 预测输出的多类 ROC
- python - mysqldump 命令在 cmd 中工作但在 python 中不工作
- python - 使用 Scrapy 解压缩文件列表并读取到 csv 的问题
- javascript - 向右移动推荐朋友和姓名按钮
- function - 更改列数据后插入空白行