我有以下ef核心模型
public class Person
{
public int Id { get; set; }
public Passport Passport { get; set; }
}
public class Passport
{
public int Id { get; set; }
public string Number { get; set; }
}
在进行请求时,它看起来像:
.Include(x => x.Passport)
.Select(x => new
{
PersonId = x.Id,
PassportNumber = x.Passport.Number
})
我观察到,对于EF Core的每个用户,他们进行数据库访问以获取护照。因此,如果人数为10,则10请求将发送给db以获取护照实体。有什么办法可以处理1个请求而不是10个获取护照? 预先谢谢你
答案 0 :(得分:0)
您应该使用连接操作通过linq更改代码。
var q = from p in context.Persons
join pa in context.Passport
on p.PassportId equals pa.Id
select new
{
PersonId = p.Id,
PassportNumber = pa.Number
}
我建议您将passwordId属性添加到Person类中。