Entity Framework Core 数据操作与映射技巧
1. SQL 查询与存储过程
在数据操作中,有时会使用到 SQL 查询和存储过程。例如有如下 SQL 查询:
[PilotId], [x].[Price], [x].[Seats], [x].[Strikebound], [x].[Timestamp],
[x].[Utilization]
FROM (
Select * from GetFlightsFromTVF(@p0)
) AS [x]
WHERE [x].[FreeSeats] > 10
不过,在 Entity Framework Core 中,没有像经典 Entity Framework 的 Database First 那样为存储过程和表值函数提供包装方法的程序代码生成器,也没有像经典 Entity Framework 的 Code First 那样为 INSERT、UPDATE 和 DELETE 存储过程提供 SQL 生成器。不过第三方工具 Entity Developer 能为存储过程和表值函数的包装方法提供程序代码生成器。
2. 使用非实体类作为结果集
与经典 Entity Framework 相比,Entity Framework Core 存在一个很大的限制。在经典 Entity Framework 中, SqlQuery()
不仅可以在 DbSet<EntityType>
类的实例上使用,还能在上下文类的 Database <