I';我对这个linq有意见

本文关键字:linq | 更新日期: 2023-09-27 18:21:45

我需要获取一些数据并在其他级别使用它。我不能返回(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;
    }
}

I';我对这个linq有意见

问题是您的查询返回IEnumerable<T>,其中TCantact1的类型,但由于您将其转换为字符串,它将返回IEnumerable<string>。但由于退货类型是string,您需要退货单个项目。您可以使用FirstOrDefault:-

 var c = (from d in context.Cantacts
          where d.Cantact1 == _search
          select d.Cantact1.ToString()).FirstOrDefault();

或者使用Lambda语法:-

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