代码:
var primeCtr = con.Contractors?.Where(ctr => ctr.Type == "Prime").FirstOrDefault();
if (primeCtr == null)
primeCtr = con.Contractors?.Where(ctr => ctr.Type == "Original Prime").FirstOrDefault();
解释:如果存在“Prime”类型的承包商,则使用该承包商,否则使用“Original Prime”
我可以使用?:表达式来编写这个代码,但是我认为效率会较低?
var primeCtr = con.Contractors?.Where(ctr => ctr.Type == "Prime").Any() ? con.Contractors?.Where(ctr => ctr.Type == "Prime").FirstOrDefault() : con.Contractors?.Where(ctr => ctr.Type == "Original Prime").FirstOrDefault();
我认为“Prime”的查询会被执行两次?
只是想确定是否有更优雅的方式来使用 EF Core 8 来表达这一点?这是我的第一个 EF Core 应用程序,我已经好几年没用过旧的 EF 了,所以可能会生疏。