在正常(未编译)LINQ到SQL查询,您可以通过下面的代码中提取从IQueryable的中的SqlCommand:如何从遵守LINQ查询提取的SQL命令
SqlCommand cmd = (SqlCommand)table.Context.GetCommand(query);
是否有可能做相同的编译查询?
下面的代码为我提供了一个委托编译查询:
private static readonly Func<Data.DAL.Context, string, IQueryable<Word>> Query_Get =
CompiledQuery.Compile<Data.DAL.Context, string, IQueryable<Word>>(
(context, name) =>
from r in context.GetTable<Word>()
where r.Name == name
select r);
当我使用它来生成的IQueryable并试图提取它似乎没有工作的SqlCommand。当调试代码,我可以看到的SqlCommand返回拥有的“SELECT NULL AS [清空]”
using (var db = new Data.DAL.Context())
{
IQueryable<Word> query = Query_Get(db, "word");
SqlCommand cmd = (SqlCommand)db.GetCommand(query);
Console.WriteLine(cmd != null ? cmd.CommandText : "Command Not Found");
}
我无法找到有关此特定情形中的任何谷歌,“非常”有用的CommandText毫无疑问,这是不是普遍的事情...
所以....任何想法?
有没有发现什么呢?我面临同样的挑战。 – Terry 2015-08-18 15:22:25