0

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

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

在发布者类的元数据中:
[Key]
public int Id;
...

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

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

谢谢你。

4

1 回答 1

0

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

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

于 2009-07-02T18:53:44.673 回答