如何在c#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

我是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);

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();