在EF Core中加载相关实体会导致大量数据库故障

问题描述 投票:0回答:1

我有以下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个获取护照?预先谢谢你

c# entity-framework-core ef-code-first
1个回答
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
        }

我建议您将passportIdId属性添加到Person类中。

© www.soinside.com 2019 - 2024. All rights reserved.