C# Linq查询在执行时返回相应的sql

C# Linq查询在执行时返回相应的sql,c#,sql,linq,sql-server-ce,C#,Sql,Linq,Sql Server Ce,我已经创建了一个数据库。当我实例化数据上下文并运行查询时(为了便于查看,我附加了一个textblock,因此结果显示在textblock中),我从查询中获取SQL,而不是结果 数据库:Languages.sdf 表:语句SDB 数据上下文:LanguagesContext 操作系统:Windows phone 8.1,Emulator 我的代码: using(LanguagesContext ctx = new LanguagesContext(LanguagesContext.Connec

我已经创建了一个数据库。当我实例化数据上下文并运行查询时(为了便于查看,我附加了一个textblock,因此结果显示在textblock中),我从查询中获取SQL,而不是结果

  • 数据库:
    Languages.sdf
  • 表:
    语句SDB
  • 数据上下文:
    LanguagesContext
  • 操作系统:Windows phone 8.1,Emulator
我的代码:

using(LanguagesContext ctx = new LanguagesContext(LanguagesContext.ConnectionString))
{
   ctx.CreateIfNotExists();
   ctx.LogDebug = true;

   var abc = from p in ctx.SentencesDB
   where p.English == "hello"
   select p.English;

   return abc.ToString();
}
这是我得到的输出:

SELECT [t0].[English]
FROM [SentencesDB] AS [t0]
WHERE [t0].[English] = @p0

那么,我哪里出错了呢?

您得到的是SQL命令,因为您正在linq查询上执行ToString,您得到的是谁的ToString。如果要获得结果,需要返回abc并对其执行foreach。

或选择其他查询:

string abc = (from p in ctx.SentencesDb
          where p.English == "hello"
          select p.English).SingleOrDefault("none")
return abc;
第二种方式:

string abc = ctx.SentenceDb
             .SingleOrDefault(p => p.English == "Hello")
             .Select(p => p.English);