-1

我是新手,我想选择: (SQL) select textfileURL from [tablename];

我现在拥有的:

public string GetfileURL()
    {
         return context.wordpuzzles.Select(i => i.textfileURL).ToString();
    } 

但它不起作用。

4

4 回答 4

2

这一行:

context.wordpuzzles.Select(i => i.textfileURL)

将返回一个 IEnumerable。然后你试图把它转换成一个字符串。我想您想将此 IEnumerable 中的所有文本分配给一个字符串?

然后聚合可以派上用场=)。

context.wordpuzzles.Select(i => i.textfileURL)
              .Aggregate(string.Empty, (current, c) => current + c + "\n");

将导致:

字符串 1 字符串 2 等

不确定这是否是你真正想要的......

如果你只想要一个,你可以使用FirstOrDefault

例子 :

context.wordpuzzles.FirstOrDefault(i => i.textfileURL.Contains("your criteria"))
于 2013-06-25T09:35:00.360 回答
1

您应该首先让您的项目正确,因此请尝试以下方法之一:

public string GetfileURL()
{
     return context.wordpuzzles.Single(i => i.condition = "yourCriteria").textfileURL.ToString();
} 

或者

public string GetfileURL()
{
     return context.wordpuzzles.First(i => i.condition  = "yourCriteria").textfileURL.ToString();
} 

或者

public string GetfileURL()
{
     dim results = context.wordpuzzles.Where(i => i.condition  = "yourCriteria").ToList();

     'perform rest of code
} 

但是你必须确保如果你执行 Single 调用它在 return 语句中只有 1 行。

如果您不确定是否有任何行,您可以添加 .SingleOrDefault 或 .FirstOrDefault

于 2013-06-25T09:33:34.753 回答
1

您正在做几乎正确的事情,但是如果您想选择一个结果,请使用FirstOrDefault(). 否则你会得到IEnumerable<string>.

于 2013-06-25T09:34:15.387 回答
1

Select将序列的每个元素投影到新的形式中。所以它返回IEnumerable,而不仅仅是一个字符串。

于 2013-06-25T09:34:35.713 回答