[翻译]:使用Datasets和Datatables进行远程调用数据存取

本文由唐勇翻译自FluorineFX官方文档(http://www.fluorinefx.com/docs/fluorine/index.html),转载请保留

(RPC data access using Datasets and Datatables)

通过设计一个数据集或数据表,例如发送一个untyped对象到Flex(在as3 中,mx.remoting.recordset类不存在) 。

属性来控制如何在数据集或数据表发送

在个属性在FluorineFx命名空间中被定义

[DataTableType(string remoteClass)]
[DataTableType(string tableName, string remoteClass)]
[DataTableType(string tableName, string propertyName, string remoteClass)]

该数据表的type属性指定数据表中数据的类型,行将连续收集的保存as对象(表栏目存为属性值)。

第二次和第三次超载是结合使用的数据类型属性。

示例:

     [DataTableType("FlexRemoteObjectSample.PhoneVO")]
     public DataTable GetDataTable()
     {
         DataSet dataSet = new DataSet("mydataset");
         DataTable dataTable = dataSet.Tables.Add("phones");
         dataTable.Columns.Add( "number", typeof(string) );
         dataTable.Rows.Add( new object[] {"123456"} );
         dataTable.Rows.Add( new object[] {"456789"} );
         return dataTable;
     }
Flex将从PhoneVO对象得到一个数组。

[DataSetTypeAttribute(string remoteClass)]

指定数据集将系列化作为一个保存的as对象。使用此属性结合了数据表类型属性(DataTableTypeAttribute为每个表) 。

示例:

     [DataSetType("FlexRemoteObjectSample.PersonVO")]
     [DataTableType("phones", "phoneNumbers", "FlexRemoteObjectSample.PhoneVO")]
     public DataSet GetDataSet()
     {
         DataSet dataSet = new DataSet("mydataset");
         DataTable dataTable = dataSet.Tables.Add("phones");
         dataTable.Columns.Add( "number", typeof(string) );
         dataTable.Rows.Add( new object[] {"123456"} );
         dataTable.Rows.Add( new object[] {"456789"} );
         return dataSet;
     }
Flex可以接受一个 Phone VO 对象,该对象有一个"phoneNumbers"属性,该属性是ArrayCollection类型。

posted on 2009-04-03 20:01  永不满足  阅读(245)  评论(0编辑  收藏  举报

导航