Linq查询在执行时返回相应的sql
本文关键字:sql 返回 查询 执行 Linq | 更新日期: 2023-09-27 18:25:35
我已经创建了一个数据库。当我实例化数据上下文并运行查询时(出于查看目的,我附加了一个文本块,因此结果显示在文本块中),我从查询中获得SQL,而不是结果。
- 数据库:
Languages.sdf
- 表:
SentencesDB
- 数据上下文:
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);