无法刷新复合数据

时间:2013-07-03 13:51:05

标签: silverlight-5.0 wcf-ria-services

我为SL app使用EF + WCF Ria服务。假设我有2个表Person,PersonPhone。 2个实体将由EF创建。

然后将PersonPhone定义为WCF ria服务的元数据中的复合,如:

   [MetadataTypeAttribute(typeof(Person.PersonMetadata))]
    public partial class Person
    {
        internal sealed class PersonMetadata
        {
            private PersonMetadata()
            {
            }

            [Include]
            [Composition]
            public EntityCollection<PersohPhone> PersonPhone { get; set; }

           //......
     }
}

然后将wcf ria服务方法定义为:

 public IQueryable<Person> GetPersonByID(int id)
        {
            var result = this.ObjectContext.Persons.Include("PersonPhone")
                .Where(x => x.PersonID == id);               
            return result;
        }

然后在SL app中调用此方法,如:

  Context.Load<T>(Context.GetPersonByIDQuery(id), LoadBehavior.RefreshCurrent, r =>
            {
              //......
            }, null);

问题是:第一次打电话,没关系,所有PersonPhone都已加载。

出于测试目的,我从SL app中的PersonPone中删除了一些数据,但没有将其保存回DB,如:

Person.PersonPhone.Remove(personphone);

或者:

   Person.PersonPhone.Detach(personphone);

然后调用方法在SL app中再次加载Person,Person.PersonPhone不刷新。

如何解决此问题?

0 个答案:

没有答案