【问题标题】:Return an object graph from a linq query从 linq 查询返回对象图
【发布时间】:2021-07-21 02:58:13
【问题描述】:

我有一个Vehicle 模型:

public class Vehicle
{
    [Key]
    public int ID { get; set; }
    public string Title { get; set; }
    ...
    public IEnumerable<VehiclePolicy> Policies { get; set; }
}

还有一个VehiclePolicy 模型:

public class VehiclePolicy
{
    [Key]
    public int Id { get; set; }

    public int VehicleID { get; set; }
    public Vehicle Vehicle { get; set; }

    public DateTime EffectiveFrom { get; set; }
    public DateTime? EffectiveTo { get; set; }
}

还有 EF Core 5 数据集:

public virtual DbSet<Vehicle> Vehicles { get; set; }
public virtual DbSet<VehiclePolicy> VehiclePolicies { get; set; }

当我执行 linq 查询时:

from v in _context.Vehicles
join vp in _context.VehiclePolicies on v.ID equals vp.VehicleID into vvp
from vehiclePolicy in vvp.DefaultIfEmpty()
orderby v.Title
select new Vehicle 
{
  ID = v.ID,
  Title = v.Title,
  ...
  Policies = vehiclePolicy
}

有没有更简单的方法来返回 Vehicle 图,而不是“手动”组合它?

【问题讨论】:

    标签: linq entity-framework-core ef-core-5.0


    【解决方案1】:

    其实也正是为了这个目的,EF引入了Include

    var query = context.Vehicles
        .Include(v => v.Policies)
        .OrderBy(v => v.Title);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多