我知道您可以访问Linq To Sql生成的原始SQL,但是可以使用Linq To Entities来构建查询然后访问生成的SQL吗?
之所以需要这样做,是因为我想使用Linq To Entities而不是查询生成器,然后将该SQL查询传递到比实体框架快得多的Dapper。这种方法有意义吗?
哦,我在.NET core中需要它。 The linked duplicate question大致相同,但适用于.NET框架。
说我有这样的东西:
// dummy Entities
DbContext context = null;
DbSet<Student> students = null;
// my Linq To Entities query
var student = students.Where(st => st.Standard == 1)
.Select(st => new {
Id = st.StudentId,
Name = st.StudentName
});
// how do I access the SQL for that?
答案 0 :(得分:0)
您可以查看为查询和更改处理生成的SQL代码 通过使用Log属性。这种方法对于 了解LINQ to SQL功能并用于调试 问题。
您可以将SQL登录到控制台,也可以通过使用首选流设置“日志”字段来将文件登录到
db.Log = Console.Out;
// my Linq To Entities query
var student = students.Where(st => st.Standard == 1)
.Select(st => new {
Id = st.StudentId,
Name = st.StudentName
});