我遇到这个linq有问题

Mos*_*ari 0 c# linq

我需要获取一些数据并在其他级别使用它.我不能回来(c),我正在寻找一种模式.我怎样才能正确归还?

public string AutoUpdate(string _search)
{
    using (var context = new Phone_BookEntities1())
    {
        var c = from d in context.Cantacts
                where d.Cantact1 == _search
                select d.Cantact1.ToString();
        return c;
    }
}
Run Code Online (Sandbox Code Playgroud)

Rah*_*ngh 8

问题是你的查询正在返回IEnumerable<T>哪里T是类型Cantact1但在这里,因为你将它转换为字符串,它将返回IEnumerable<string>.但由于返回类型是string您需要返回单个项目.你可以使用FirstOrDefault: -

 var c = (from d in context.Cantacts
          where d.Cantact1 == _search
          select d.Cantact1.ToString()).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

或者使用Lambda语法: -

var c = context.Cantacts.FirstOrDefault(d => d.Cantact1 == _search);
if(c != null)
   return c.Cantact1.ToString();
else
   return String.Empty;  //any default value
Run Code Online (Sandbox Code Playgroud)