简体   繁体   English

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

[英]In Entity Framework, how to get the sql translated by EF?

A example: 一个例子:

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

how to use ObjectQuery.CommandText to get the SQL? 如何使用ObjectQuery.CommandText来获取SQL?

If you are using Entity Framework 6, then you can use Database.Log to intercept database operation. 如果您使用的是Entity Framework 6,则可以使用Database.Log来拦截数据库操作。 It accepts delegate which takes string parameter (database query text). 它接受带有字符串参数(数据库查询文本)的委托。 Eg output of query to console will look like: 例如,查询到控制台的输出将如下所示:

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

See Logging and Intercepting Database Operations 请参阅记录和拦截数据库操作

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM