如何使用.Net Ria Services与具有相同密钥(“Id”)的对象建立关联?

时间:2009-07-02 18:25:21

标签: silverlight wcf-ria-services

假设我有两个类,并且要求主键属性必须命名为“Id”(例如:Book和Publisher)。这个要求是因为我正在使用我们公司代码生成的对象,并且不能改变它们的生成方式。这些类之间有一个外键:Book to Publisher并且是一对一的关系,在这种情况下,每本Book只有一个Publisher。

要将Book.Publisher用作.Net RIA Services中的属性,您需要添加属性。 例如,在Book类的元数据中:
[键] public int Id; ... [包含]
[Association(“Book_Publisher”,“Id”,“Id”,IsForeignKey = true)]
public Publisher Publisher;

在发布商类的元数据中:
[关键词]
public int Id;
...

在客户端代码中,我尝试获取发布者: Publisher booksPublisher = Book.Publisher; 但我得到了错误的发布者(或null)。查看数据库后,发布者ID是否正在查找该书的ID,而不是发布者。

我可以在元数据中添加别名吗? RIA服务的更新版本会处理这个吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

只是一个猜测...但我认为你遇到问题的原因是因为你试图将Book字段中的Id字段键入Publisher对象的Id字段。我猜是Book.Id唯一标识了这本书,而不是出版商。

Book对象是否有一个名为publisherId的字段或类似的字段?如果是这样,您应该使用Book.publisherId = Publisher.Id将Book to the Book to Publisher。