none
求教,如何将后台的一个类型转换,通过ria的 RRS feed

  • 问题

  • 比如说 我在domainservice.cs写上:
    public Account GetLogin(string ID)

            {
                return this.Context.Account.First(u => u.Username.Equals(ID));
            }

    想在前台赋值给一个 Account 类型,比如Account b = domainContext.GetLoginQuery(txtAdminName.Text);
    就会出现以下错误

    错误 1 无法将类型“System.Windows.Ria.Data.EntityQuery<SilverlightApplication1.Web.Account>”隐式转换为“SilverlightApplication1.Web.Account” 

    要如何解决?

    2010年1月6日 7:10

答案

  • 比如说 我在domainservice.cs写上:
    public Account GetLogin(string ID)

            {
                return this.Context.Account.First(u => u.Username.Equals(ID));
            }

    想在前台赋值给一个 Account 类型,比如Account b = domainContext.GetLoginQuery(txtAdminName.Text);
    就会出现以下错误

    错误 1 无法将类型“System.Windows.Ria.Data.EntityQuery<SilverlightApplication1.Web.Account>”隐式转换为“SilverlightApplication1.Web.Account” 

    要如何解决?


    domainContext.GetLoginQuery(txtAdminName.Text) 得到的只是一个Query,
    你需要调用Load来从Server端真正Load数据 (Account),注意这个过程是异步发生的,建议你先看些RiaService的例子.
    LoadOperation<Account> loadOp = domainContext.Load(domainContext.GetLoginQuery(txtAdminName.Text));
    loadOp.Completed += new EventHandler(op_Completed);
    ...
    }
    
            void op_Completed(object sender, EventArgs e)
            {
                LoadOperation<Account> op = sender as LoadOperation;
                if(! op.HasError)
                {
                    Account a = op.Entities.FirstOrDefault(); //Your account
                }
                 else
               { //Error processing
                }
            }

    2010年1月8日 22:27

全部回复

  • 传到前台 成了 这种 类型 EntityQuery<Account>
    不知怎么拿到 查询出来的Account类型变量的属性值
    2010年1月6日 12:05
  • LINQ查出来的一般是var类型,你可以自己写一个方法用来转换就行了。

    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com


    《银光志--Silverlight 3.0开发详解与最佳实践》
    2010年1月8日 2:39
    版主
  • 比如说 我在domainservice.cs写上:
    public Account GetLogin(string ID)

            {
                return this.Context.Account.First(u => u.Username.Equals(ID));
            }

    想在前台赋值给一个 Account 类型,比如Account b = domainContext.GetLoginQuery(txtAdminName.Text);
    就会出现以下错误

    错误 1 无法将类型“System.Windows.Ria.Data.EntityQuery<SilverlightApplication1.Web.Account>”隐式转换为“SilverlightApplication1.Web.Account” 

    要如何解决?


    domainContext.GetLoginQuery(txtAdminName.Text) 得到的只是一个Query,
    你需要调用Load来从Server端真正Load数据 (Account),注意这个过程是异步发生的,建议你先看些RiaService的例子.
    LoadOperation<Account> loadOp = domainContext.Load(domainContext.GetLoginQuery(txtAdminName.Text));
    loadOp.Completed += new EventHandler(op_Completed);
    ...
    }
    
            void op_Completed(object sender, EventArgs e)
            {
                LoadOperation<Account> op = sender as LoadOperation;
                if(! op.HasError)
                {
                    Account a = op.Entities.FirstOrDefault(); //Your account
                }
                 else
               { //Error processing
                }
            }

    2010年1月8日 22:27