在Entity Framework中,如何获取EF翻译的sql?

时间:2014-03-20 09:01:18

标签: c# linq entity-framework linq-to-entities

一个例子:

public void Add()
{
    TestDBEntities2 testdb = new TestDBEntities2();
    Test1 test1 = new Test1() { Name="yang"};
    testdb.Tests.Add(test1);
    testdb.SaveChanges();
}

如何使用ObjectQuery.CommandText来获取SQL?

1 个答案:

答案 0 :(得分:2)

如果您使用的是Entity Framework 6,则可以使用Database.Log来拦截数据库操作。它接受带有字符串参数(数据库查询文本)的委托。例如。查询到控制台的输出将如下所示:

testdb.Database.Log = Console.WriteLine;
testdb.SaveChanges();

请参阅Logging and Intercepting Database Operations