文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Silverlight RIA学习笔记一

Silverlight RIA学习笔记一

时间:2011-04-22  来源:浪花一朵朵

    一,向中间代码添加业务逻辑

   在RIA service中通常会涉及到一些业务逻辑不需要客户端调用,但中间层又不可或缺,也就是只在中间层中访问,客户端不需要访问,不需要将该方法公开为服务,使用 IgnoreAttribute 特性来标记该方法,这个在客户端不可见,下面的演示将添加一个新的应用,(如果应用名称不重复)该方法使用 IgnoreAttribute 特性进行了标记,以防止从客户端将该方法作为服务调用。

      
        /// <summary>
        /// 判断是否存在相同的应用名称
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        [Ignore]
        public bool isExist(string name)
        {
            var temp = this.ObjectContext.BSMG_T_Content.Where(c => c.Name == name).OrderByDescending(c => c.ID).FirstOrDefault();
            return temp == null ? false : true;
        }

        /// <summary>
        /// 添加应用

        /// </summary>
        /// <param name="bSMG_T_Content"></param>
        public void InsertBSMG_T_Content(BSMG_T_Content bSMG_T_Content)
        {
            if (!this.isExist(bSMG_T_Content.Name))//调用isExist()方法
            {
                if ((bSMG_T_Content.EntityState != EntityState.Detached))
                {
                    this.ObjectContext.ObjectStateManager.ChangeObjectState(bSMG_T_Content, EntityState.Added);
                }
                else
                {
                    this.ObjectContext.BSMG_T_Content.AddObject(bSMG_T_Content);
                }
            }
        }

二添加命名更新方法

 

在域服务类中,添加与命名更新方法的预期签名匹配的方法。

该方法应使用 UpdateAttribute 特性标记(同时 UsingCustomMethod 属性设置为 true),或是不返回任何值,而是接受某个实体作为第一个参数。

下面的示例演示一个方法,该方法允许具有更新当前应用中各个属性, 

 


/// <summary>
/// 更新当前应用
/// </summary>
/// <param name="current"></param>
public void SetContentType(BSMG_T_Content current)
{
if (current.EntityState==EntityState.Detached)
{
this.ObjectContext.BSMG_T_Content.Attach(current);
}

}

在客户端调用的时候,可直接调用,然后提交


bSMG_T_Content.SetContentType();
_rAPAdminAppMgmtDomainContext.SubmitChanges(onSubmitCallback, null); 三:添加调用操作 服务方法如下: [Invoke] public IEnumerable GetName() { return new[] { "Tom", "Mary", "Green" }.Select(i => i.ToString()); }
客户端调用可作如下调用:
InvokeOperation invokeOp = customerContext.GetName(OnInvokeCompleted, null);

private void OnInvokeCompleted(InvokeOperation invOp)
{
  if (invOp.HasError)
  {
    MessageBox.Show(string.Format("Method Failed: {0}", invOp.Error.Message));
    invOp.MarkErrorAsHandled();
  }
  else
  {
    result = invOp.Value;
  }
}

未完....待续
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载