从启用了ajax的wcf服务返回数据集

时间:2010-03-24 05:38:52

标签: ajax dataset wcf

我称之为启用ajax的wcf服务方法,

<script type="text/javascript">
    function GetEmployee() {
        Service.GetEmployeeData('1','5',onGetDataSuccess);
    }
    function onGetDataSuccess(result) {
        Iteratejsondata(result)
            }
     </script>   

我的方法是,

[OperationContract]
public string GetEmployeeData(int currentPage,int pageSize)
{
    DataSet ds = GetEmployeeViewData(currentPage,pageSize);
    return GetJSONString(ds.Tables[0]);
}    

我的Dataset ds包含三个数据表,但我正在使用第一个用于我的记录... 其他两个数据表有值,如何在result ...

中获取它们
function onGetDataSuccess(result) {
        Iteratejsondata(result)
            }

任何建议......

1 个答案:

答案 0 :(得分:2)

唯一的建议是:不要在WCF上使用DataSet!

DataSet是邪恶的 - 它们是巨大的,它们带来了大量的开销,混合数据与行为 - 在做适当的SOA时你应该尽量避免瘟疫。当您异步进行Ajax调用时,这是双重的 - 您希望使用JSON尽可能少地传输数据 - 并且使用DataTables的DataSet对您的JSON调用没有任何帮助......

所以真的:让自己熟悉一些ORM,抓住对象和对象列表,然后把DataSet放到数字回收堆上......

对于一个小项目,如果您使用SQL Server作为后端,为什么不使用Linq-to-SQL?或者,如果这对您不起作用,请查看Subsonic