gpt4 book ai didi

c# - 在多个连接的情况下延迟加载、急切加载或显式加载?

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:59 24 4
gpt4 key购买 nike

我是 Entity Framework 的初学者。我需要从 8 个不同的表中获取许多记录(有时甚至达到数百万)。我目前正在 linq 中加入这些表并将它们转换为 list。 (所以我在这里进行显式加载)我知道在这种情况下是否更适合使用预加载以获得更好的性能。任何帮助将不胜感激。这是我的查询:

List<FarmerDetailsReport> fdr = 
(from fp in mstfp join pd in personalDetails on fp.personDetails.Id equals pd.Id
join ic in identityCertificate on fp.identityCertificate.Id equals ic.Id
join pid in pacsInsuranceData on fp.pacsInsuranceData.Id equals pid.Id into temp
from pid in temp.DefaultIfEmpty()
join bd in bankDetails on fp.bankDetails.Id equals bd.Id
join cd in contactDetails on fp.contactDetails.Id equals cd.Id
join id in incomeDetails on fp.incomeDetails.Id equals id.Id into tmp
from id in tmp.DefaultIfEmpty()
join ua in user

fp.UserId 上的属性等于 ua.EmailID

where ((ua.CompanyName == companyName ) && (cd.District == model.DistrictForProfileMIS ) && (cd.Block == model.BlockForProfileMIS) && (bd.bankName == model.BankForProfileMIS ) && Status == "Active")

select new FarmerDetailsReport { .......... }).ToList();

最佳答案

在我看来,比在 Entity Framework 中以这种方式连接大量表更好的方法是在数据库中创建一个 View (索引 View )并查询它。我不是数据库专家,但它应该提高数据库和代码的性能......

当然,如果数据库发生变化,您也可以更改 View ,而无需更改您的代码。

关于c# - 在多个连接的情况下延迟加载、急切加载或显式加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21773763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com