我在使用这个 linq 时遇到了问题
I'm having trouble with this linq
我需要获取一些数据并在其他级别使用它。我不能 return (c),我正在寻找一种模式。我怎样才能 return 正确?
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;
}
}
问题是您的查询是 returning IEnumerable<T>
,其中 T
是 Cantact1
的类型,但在这里由于您将其转换为字符串,它将 return IEnumerable<string>
。但是由于 return 类型是 string
你需要 return 单个项目。您可以使用 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
我需要获取一些数据并在其他级别使用它。我不能 return (c),我正在寻找一种模式。我怎样才能 return 正确?
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;
}
}
问题是您的查询是 returning IEnumerable<T>
,其中 T
是 Cantact1
的类型,但在这里由于您将其转换为字符串,它将 return IEnumerable<string>
。但是由于 return 类型是 string
你需要 return 单个项目。您可以使用 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