+ -
当前位置:首页 → 问答吧 → webservice 传送大对象问题,急急!!!!!!!!!!!!!!

webservice 传送大对象问题,急急!!!!!!!!!!!!!!

时间:2011-12-07

来源:互联网

webservice 传送大对象问题,急急!!!!!!!!!!!!!!

现在我们的项目是基于ef4.1 ,web service ,linq to ef,不是asp.net ,而是winform
开发环境.net4.0,vs2010,
所有数据库访问访问都是通过Webservice返回
返回的就是一个实体类,前台调用这个来绑定Devexpress 的gridcontrol

比如如下所示
#region 根据流水号得到相应的未结消费
  [WebMethod]
  /// <summary>
  /// 根据流水号得到相应的未结消费
  /// </summary>
  /// <param name="waternum"></param>
  /// <returns></returns>
  public List<V_ConsumeTemp> GetAllConsumeByWaternum(List<Guid> waternum)
  {
  try
  {
  return this.commonService.GetAllConsumeByWaternum(waternum).ToList();
  }
  catch(Exception ex)
  {

  }
  return null;
  }
  #endregion

List<V_ConsumeTemp> 就是一个对象,里面有70个字段
如果里里面的行数可能会达到1 万多行数据,那返回就很慢了
由于以前的程序用2003写的直接返回Datatable,没有webservice这么慢
大家也不要说让我分页了,Winform程序基本上没有分页的习惯


前台代码,调用 Webservice
  #region 根据流水号得到相应的未结消费
  /// <summary>
  /// 根据流水号得到相应的未结消费
  /// </summary>
  /// <param name="waternum"></param>
  /// <returns></returns>
  public static List<V_ConsumeTemp> GetAllConsumeByWaternum(List<Guid> waternum)
  {
  return commonService.GetAllConsumeByWaternum(ToProxyType<Guid,ArrayOfGuid>(waternum)).ToList();
  }
  #endregion
请问有什么好的方法能压缩一下,如果大家说用在webservice 端 zip压缩,然后传送Byte[]
那这样一来,前台就不知道要转换成什么 样的类别 了


因为上面的Web方法,在前台调用时就已经是V_ConsumeTemp这个实体类了
如果Web 端压缩 成byte[]
那 return commonService.GetAllConsumeByWaternum(ToProxyType<Guid,ArrayOfGuid>(waternum)).ToList();
这一句话怎么从bute[] 转化为List<V_ConsumeTemp>?


另再提一个问题V_ConsumeTemp这个实体类我只想要一部分的字体的数据,就是说这个里70个字段属性,我只想取其中2,3个字段
在linq 里可以用 select(new {x.ddd,x.aaa}这样用
不过这样一来,我就又得新增一个类别
比如
public class tempddd
{
public string ddd{get;set;}
public string aaa{get;set;}
)
在web service 
端 代码 就变成

public List<tempddd> GetAllConsumeByWaternum(List<Guid> waternum)
  {
  try
  {
  return this.commonService.GetAllConsumeByWaternum(waternum).select(new {x.ddd,x.aaa}.tolist() ;
  }
  catch(Exception ex)
  {

  }
  return null;
  }

有没有 什么 简单的方法 不用
public class tempddd
{
public string ddd{get;set;}
public string aaa{get;set;}
)
生成这些类?通过动态来产生类 tempddd

作者: whmjw   发布时间: 2011-12-07

http://blog.csdn.net/aspnet2002web/article/details/6048173

http://www.123aspx.com/redir.aspx?res=29459

作者: Sandy945   发布时间: 2011-12-07

http://blog.sina.com.cn/s/blog_5ceb51480100v9rt.html

http://hi.baidu.com/olympic0408/blog/item/fe49071348fc44c8f6039efd.html

作者: Sandy945   发布时间: 2011-12-07