我正在编写一个只读的 Web 应用程序,我的意思是从数据库中读取数据并显示在 UI 中,因此我的 BLL 服务方法主要由 linq 查询组成,例如:

return context.SomeLinqQuery

如果我需要一些计算,我会在 Select() 方法中进行计算,我想知道它是否正确?

另一个问题是 - 编写下面的示例查询是更好的方法吗?我想编写符合良好实践的代码,我不确定将所有内容都放在 Select() 中是否是其中之一。

我也想知道,在 _context 中调用 Select() 是否错误。如果是错误的,我该如何解决?我应该在附加循环中加载 SomeProperty 吗?
_context.SomeEntity
        .Where(some condition)
        .Select(x => new MyModel()
                {
                    Id = x.Id,
                    Name = x.Name,
                    SomeProperty = x.Status == 1
                        ? _context.DbViewModel.Where(condition).Select...
                        : _context.AnotherDbViewModel.Where(condition).Select...
                });

最佳答案



是的!正确的!只要 EF Core 能够将 LINQ 查询生成的表达式转换为 T-SQL



这将取决于您的实体之间的关系。最好使用导航属性构建查询。



如果 EF Core 能够在数据库级别评估查询,那没有错。

关于entity-framework - 如何改进这个 Entity Framework Core 查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59752984/

10-13 08:16
查看更多