今天在用MDS API写程序的时候发现了一个很让人困扰的问题,在更新成员内置字段(如:代码、名称)的时候,最开始我打算采用如下代码来进行:
individualMember.MemberId = new MDService.MemberIdentifier() { Code = "要更新的值", Name = "要更新的值"};
我想一般正常人都会用这种方法吧,设置Member成员的Identifier,将它的内置字段Name重新赋值达到更新的效果,但是很遗憾的告诉你,这种方法是不行的!虽然你成功设置了这个Member的Identifier,但是提交更新后它却不更新,并且也没有出错,而且更遗憾的告诉你,研究了很久都不知道是为什么不行!
尝试了很多种方法,最后终于找到了一个偏方,能够成功更新内置字段Name,其代码如下:
individualMember.Attributes = new Collection<MDService.Attribute>() { new MDS.MDService.Attribute() { Identifier = new Identifier() { Name = "Name" }, Value = "要更新的值" } };
竟然是通过Member的属性来更新内置字段Name,在做更新之前,我跟踪了这个Member对象,看到它里面已经有了2个Attributes,这是理所当然的,这2个Attributes是我们在MDS UI里面设置的,但是我在其中并没有发现包含Name这个内置字段,奇迹发生了,用更新属性的方法竟然可以更新成功,不知道它是怎么从Attributes里面找到Name这个字段的,真是百思不得其解啊!~若有哪位大侠知道原因,烦劳在这里给扫扫盲哈!