如何在c#web服务中返回linq到sql查询结果?
我是web服务的初学者,想编写web服务返回linq到sql查询结果,请编写以下代码:如何在c#web服务中返回linq到sql查询结果?,c#,web-services,C#,Web Services,我是web服务的初学者,想编写web服务返回linq到sql查询结果,请编写以下代码: DataClasses1DataContext behzad = new DataClasses1DataContext(conn); string result; var query = (from p in behzad.CDRTABLEs where p.name == "behzad".Trim() select p).Take(1); retu
DataClasses1DataContext behzad = new DataClasses1DataContext(conn);
string result;
var query = (from p in behzad.CDRTABLEs
where p.name == "behzad".Trim()
select p).Take(1);
return query.ToString();
但请回到我这里:
但我希望返回表数据而不是linq to sql查询,我该如何解决这个问题?
当我更改
时,返回query.ToString()
返回查询代码>我得到这个错误:
您正在搜索查询,而不是结果。由于您正在使用Take
获得一个结果,因此可以使用FirstOrDefault
计算查询并返回第一个结果,如果没有任何结果,则使用NULL
var result = (from p in behzad.CDRTABLEs
where p.name == "behzad".Trim()
select p).FirstOrDefault();
return result;
尝试执行查询-调用FirstOrDefault():
如果要返回结果的对象,需要创建一个类,然后返回它。因此,首先创建一个类,如下所示:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
}
var behzad = new DataClasses1DataContext(conn);
var query = (from p in behzad.CDRTABLEs
where p.name == "behzad".Trim()
select new Foo
{
Id=p.Id,
Name=p.Name
}).FirstOrDefault();
return query;
然后执行如下查询:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
}
var behzad = new DataClasses1DataContext(conn);
var query = (from p in behzad.CDRTABLEs
where p.name == "behzad".Trim()
select new Foo
{
Id=p.Id,
Name=p.Name
}).FirstOrDefault();
return query;
好吧,不要对它调用ToString()
。:)@Rob更新我的问题,请查看在这种情况下,您需要更改方法以返回IQueryable
。或者,如果需要获取Id:return query.Id.ToString();或者如果想要获取所有数据,则应调用:var query=(…).ToList();