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
现在我们的项目是基于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
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
http://hi.baidu.com/olympic0408/blog/item/fe49071348fc44c8f6039efd.html
作者: Sandy945 发布时间: 2011-12-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28