none
关于ria serveces 的疑惑…… RRS feed

  • 问题

  • silverlight后台与数据的操作用RIA SERVICES。在使用的时候必然要生成一个DomainService.CS的域服务类。在生成的时候,你可以再选项卡里选择是否启用编辑,如果勾选了,它在生成的DomainService.CS文件中会自动添加实体类的增删改查的方法,查询是没有问题的,但是牵扯到数据库变动的insert()等方法的时候,只有逻辑判断,并没有最终的SaveChanges()方法来执行数据库的更新。那么这就造成如果在服务器端(注意是服务器端,不是客户端)的一个类中引用这个DomainService服务: MyDomainServices context = new MyDomainServices();并执行方法context.insert((enetity)xxx)后,是不会更新数据库的……微软为什么会这么设计呢?同时有个context.submit(changeset changeset)方法怎么用,是不是与这个更新有关?请各位大大指导一下。
    编码如下:
    自动生成的方法:
    public void InsertT_User(T_User t_User)
      {
      if ((t_User.EntityState != EntityState.Detached))
      {
      this.ObjectContext.ObjectStateManager.ChangeObjectState(t_User, EntityState.Added);
      }
      else
      {
      this.ObjectContext.T_User.AddObject(t_User);
      }  
      }
    使用方法:
    MyDomainServices context = new MyDomainServices();
     T_User _T_User = new T_User();
      _T_User.Name = userName;
      _T_User.PassWord = password;
      context.InsertT_User(_T_User);
    执行后,数据库并没有更新,也没有报错。在InsertT_User(T_User t_User)中加入this.ObjectContext.SaveChanges()方法后就可执行数据库的更新,微软为什么不在生成的时候就自动加上去呢?

    2012年6月13日 16:13