如何从LINQ获取ExecuteCommand(或ExecuteQuery)的字符串值?

时间:2012-02-07 04:56:52

标签: c# string linq

这里非常简单的问题:

我有一个LINQ查询,然后通过foreach循环运行。

在那个foreach中,我通过LINQ调用ExecuteCommand来从同一个表中检索单个不对称的解密值。由于查询的复杂性,我不得不通过ExecuteCommand。

现在我更简单的问题是......如何从那里检索该值?我知道它只是一个单一的值,所以我不需要循环它或任何东西。

我试过string myString = db.ExecuteCommand("command goes here");无济于事。它甚至不让我在之后通过它自己的foreach运行它。

无论如何,我的人才流失正在这个问题上找到我。任何帮助将非常感激。提前谢谢!

3 个答案:

答案 0 :(得分:3)

请尝试这样。

string result = db.ExecuteQuery<string>("SQL Command").Single()

这与ExecuteScalar()方法类似,如果只想返回单个值。

答案 1 :(得分:2)

您需要使用ExecuteQuery()http://msdn.microsoft.com/en-us/library/bb361109.aspx

ExecuteCommand()返回受影响的行数。

答案 2 :(得分:0)

ExecuteCommand方法的返回值只是一个整数,其中包含受命令影响的行数。

http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.executecommand.aspx

如果要实际接收数据,则需要使用其中一个ExecuteQuery重载。

这将返回具有您指定类型的IEnumerable。既然你知道它只是一个单一的值,那么这个方法看起来值得一试,以便真正得到你的价值:

http://msdn.microsoft.com/en-us/library/bb357287.aspx