2016-08-16 57 views
0

如何例如如何翻译LINQ表达式到SQL字符串使用C#代码

var query = (from article in ArticleRepository.GetAll() 
      join read in ArticleReadRepository.GetAll() on read.ArticleId equals article.Id 
      where article.Id>10 
      select new 
      { 
       article.Title, 
       read.ReadCount 
      }).ToList(); 

LINQ表达式翻译成SQL字符串

select article.Title, 
     read.ReadCount 
     from ArticleTable as article 
     join ArticleReadTable as read on read.ArticleId = article.Id 
     where article.Id>10 

使用C#代码

回答

2

打印query.ToString()和您将看到由LINQ表达形成的查询

例如,

var query = from emp in v.Employees 
      select emp; 
var sqlQuery = query.ToString(); 
Console.WriteLine(sqlQuery); 

结果将是:

SELECT 
[Extent1].[ID] AS [ID], 
[Extent1].[Name] AS [Name] 
FROM [dbo].[Employee] AS [Extent1] 
+0

实际上,我想知道query.ToString()的实现......好吧,我会看到它的源代码。 –

+0

您可以从'query.ToString'中将其作为字符串进行检索并将其作为sql查询进行触发。 –

+0

@ReimuLyu如果它解决了您的问题,请将其标记为答案 –