Angenommen, ich habe zwei Klassen und eine Anforderung, dass die Eigenschaft des Primärschlüssels "Id" heißen muss (Beispiel: Book und Publisher). Die Anforderung ist, weil ich mit Code-generierten Objekten unserer Firmen arbeite und die Art, wie sie generiert werden, nicht ändern kann. Diese Klassen haben einen Fremdschlüssel zwischen ihnen: Book to Publisher und ist eine Eins-zu-eins-Beziehung, wobei in diesem Fall jedes Buch nur einen Publisher hat.Wie kann ich Assoziationen mit Objekten haben, die den gleichen Schlüssel ("Id") mit .Net Ria Services haben?
Um Book.Publisher als Eigenschaft in .Net RIA Services zu verwenden, müssen Sie die Attribute hinzufügen. Zum Beispiel in den Metadaten für die Buchklasse:
[Key] public int Id; ... [Enthalten]
[Verband ("Book_Publisher", "Id", "Id", IsForeignKey = true)]
public Publisher Publisher;
In den Metadaten für den Verlag Klasse:
[Key]
public int Id;
...
in dem Client-Code, den ich versuche, den Verlag zu bekommen: Verlag booksPublisher = Book.Publisher; Aber ich bekomme den falschen Publisher (oder eine Null). Nach dem Betrachten der Datenbank ist die Publisher-ID, nach der gesucht wird, die ID des Buchs, nicht der Herausgeber.
Kann ich einen Alias in den Metadaten hinzufügen? Werden spätere Versionen von RIA Services damit umgehen?
Vielen Dank.
Ich musste die verschiedenen Schlüssel hinzufügen, damit es funktioniert. [Association ("Book_Publisher", "BookId", "PublisherId", IsForeignKey = true)] Publisher Publisher; – Aligned