是否可以使用Linq To Entities访问生成的SQL

时间:2019-03-08 12:10:36

标签: c# sql linq .net-core entity-framework-core

我知道您可以访问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?

1 个答案:

答案 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
                                });