在WebService中将DB查询结果作为列表返回

时间:2016-05-17 13:21:00

标签: c# linq list web-services

我尝试使用某些数据库查询的结果返回Web服务方法中的列表。

我的查询是:

var Address = (from table in Model.Table where *-some conditions and join clause-* select Address).Firstordefault();

var Phone =(from table in Model.Table where *-some conditions and join clause-* select Phone).FirstOrDefault();

网络服务方法:

[WebMethod]
public List< x> ShowDetails(*input parameters*) 
{

  List< x> list = new List<x>();

  list.Add(Address);

  list.Add(Phone);

  return list;

}

我的问题是如何使用查询结果定义List< x>元素?

1 个答案:

答案 0 :(得分:0)

我没有看到在这里使用列表的原因。简单的解决方案是创建一个自定义类来保存结果:

public class X
{
  public Address Address{get;set;}
  public Phone Pnone {get;set;}
}

然后您可以执行以下操作:

[WebMethod]
public X ShowDetails(*input parameters*) 
{

  var address = Model.Addresses.FirstorDefault(some conditions);

 var phone = Model.Phones.FirstorDefault(some conditions);

  return new X{Address=address, Phone=phone}; 
}

现在我看到你提到你也在加入表可能会应用一些条件。我建议你而不是使用导航属性,例如:

var address = Model.Addresses.FirstorDefault(a=>a.State.StateId==9);

该查询将在转换为sql后为您进行连接。