我正在编写一个只读的 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/