2013-06-25 97 views
-1

我对此很陌生,我想选择:(SQL)从[tablename]中选择textfileURL;Linq lambda Select语句

我现在拥有的一切:

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

但它不工作。

+0

什么样的错误你得到 –

+3

'Select'返回'的IEnumerable <>'你是铸造'string'。 – Matten

+2

这会返回多个网址,您想要哪一个? –

回答

2

这条线:

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

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

然后Aggregate可以派上用场=)。

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")) 
1

你应该把你的项目(S)正确的先这样尝试其中之一:

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 
} 

但你gotto如果您确保执行Single调用,它在return语句中只有1行。

如果你不知道你有你可以添加.SingleOrDefault或.FirstOrDefault

1

Select项目序列的每个元素到一个新的形式。所以它返回IEnumerable而不是一个字符串。