【问题标题】:Linq query returns corresponding sql when executedlinq查询执行时返回对应的sql
【发布时间】:2014-10-04 10:40:12
【问题描述】:

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

  • 数据库:Languages.sdf
  • 表:SentencesDB
  • 数据上下文:LanguagesContext
  • 操作系统:Windows phone 8.1,模拟器

我的代码:

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

那么,我哪里做错了?

【问题讨论】:

    标签: c# sql linq sql-server-ce


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      或选择其他查询:

      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-08
        • 1970-01-01
        • 2011-07-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多