为什么一些相关实体在RIA服务中坚持而不是其他人?

时间:2011-05-05 23:44:48

标签: silverlight wcf-ria-services

我在RIA服务方面遇到了很多麻烦。我真的很想知道它是否值得麻烦。我现在遇到的问题与其他问题类似:相关实体。假设我有一个班级,Foo。 Foo有两个相关实体,Bar和Fighter。

如果我正在开发一个新的Foo,foo,并且我想在Bars系列中添加一些东西,它就可以了。像:

foo.Bars.Add(new Bar{A=a, B=b});

但是当我尝试添加战斗机时,它不起作用:

foo.Fighters.Add(new Fighter{C=c,D=d});

我一直在寻找解决方案的interwebz。我已经找到了使用[Include]属性和[Associated]属性的建议。在某些情况下,两者都有效。但是他们在这种情况下没有工作,我也不知道为什么。我已经删除并重新创建了我的EDMX和我的DomainService,因为有人建议它,但它无效。

那么什么是错的,你需要什么其他信息来帮助我?当我说尝试在我的foo.Fighters集合中添加一个战斗机时,它不会持续添加。我会注意到,我正在尝试在我的具体示例中添加现有的战斗机,而不是战斗机,如果这有助于/提供线索。

如果您需要信息或实际代码示例,我将很乐意为您服务。提前感谢所有寻求帮助的人。

1 个答案:

答案 0 :(得分:1)

要检查和确认的一些事项

  1. Fighter表具有在数据库中定义的外键。
  2. 使用[Association][Include][Composition]属性。协会定义了这种关系。如果已填充,则Include指示服务器将集合的实例或内容发送到客户端。组合指示WCF RIA跟踪对集合的更改并将其发送回服务器。
  3. 确保在Silverlight中的所有添加后调用context.SubmitChanges()
  4. 确保您的DomainService上有插入方法。
  5. 也许其中一个或多个会有所帮助。