flex+EF(Asp.Net Entity Framework)+FluorineFx 组合的自定义实体类型转换(原创)



几经周折搞定flex as自定义类到 .net c#的转换。
 
以进销存销售开单为例,这是一个典型的主明细表实体类,我是把主表类和明细表类做成一个类。然后在flex as3端传送到.net端
我用的配置是flex as3 + EF(Asp.Net Entity Framework) c# + FluorineFx 组合
销售开单我做了一个类,
FLEX端:
order_list.as
 
其中包括两个成员
public var AccoutListVO:ArrayCollection; //销售明细单用一数组
public  var ordersVO:TgetXskdOrder;//销售主表
 
传给amf用的是object
//传递Order主明细表
        public function addorder(ro:order_list):void{
           
            _service.addOrder.send(ro);
        }
以下是order_list.as源码
package vo
{  
    import mx.collections.ArrayCollection;
    import mx.collections.IList;
//这行没有用因为到c#的格式[RemoteClass(alias="posService.vo.order_list")]       //试了几种方式,发现都无法映射到cs类。最后决定自己绑定。
 




    [Bindable] 
    public class order_list
   
    { 
   
        public var AccoutListVO:ArrayCollection;//明细表
        public  var ordersVO:TgetXskdOrder;//主表
       
        public function order_list():void{
           
           
        }
      } 

//传送方法
protected function addOrder_clickHandler(event:MouseEvent):void
  {
   var ro:order_list=new order_list();
   ro.ordersVO.S_E_NAME="tt";
   ro.ordersVO.S_O_DATE="2010-1-1";
   var ro1:TgetXskdOrder=new TgetXskdOrder();
   ro1=ro.ordersVO;
   var myArray:ArrayCollection=new ArrayCollection(); 
   myArray.addItem(new AccoutListVO()); 
   myArray.addItem(new AccoutListVO()); 
   myArray.addItem(new AccoutListVO()); 
   myArray.addItem(new AccoutListVO()); 
   
   ro.AccoutListVO=myArray ;
   
  
   dbControl.addorder(ro);
  }
 
C#端
//建一销售单类  orderlist.cs
 
Orderlist.cs
public class orderlist
    {
      
        public Orders orders;//销售单主表
        public IList<AccoutList> accoutList;//销售单明细表
        public  orderlist(ASObject obj)
        {
          //  untypedList.OfType<T>().ToList();
 
        //转换flex传过来的Order主表。
            this.orders = obj["ordersVO"] as Orders;
        //转换FluorineFx.AMF3.ArrayCollection   到Ilist<T>很麻烦,查了很多资料才找到,最后在msdn上才找到答案IList to IList<T> http://social.msdn.microsoft.com/Forums/zh-CN/netfxbcl/thread/8c22d5db-8bf3-4dda-9db1-dc0ca3bb9cb4
      
  this.accoutList = (obj["AccoutListVO"] as IList).OfType<AccoutList>().ToList();
  }
   
    }
 
服务调用的方法
public bool addOrder(ASObject obj)
        {
            orderlist obj1 = new orderlist(obj);
            return true;
        }
 
 
至此.net端成功转换flex端传过来的复杂自定义类。
下次更新.net到flex as3端的自定义实体类型转换
网络推广 网站运营 网站开发 DDV的茶餐厅 http://www.dplayer.net/ ,   http://www.dplayer.net/post/94.html 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值