Entity Framework InverseProperty
Das InverseProperty
Attribut wird verwendet, um die inverse Navigationseigenschaft einer Beziehung InverseProperty
, wenn derselbe Typ an mehreren Beziehungen beteiligt ist.
- Sie wird verwendet, wenn Sie angeben müssen, dass die Navigationseigenschaft in einer Klasse mit demselben Fremdschlüssel wie eine andere Navigationseigenschaft in einer anderen Klasse zusammenhängt.
- In der
Book
möchten Sie beispielsweise nachverfolgen, wer ein Buch geschrieben hat und wer es bearbeitet hat.
Im folgenden Beispiel haben wir zwei neue Navigationseigenschaften für die Klasse "Author" hinzugefügt.
public class Book
{
public int BookId { get; set; }
public string Title { get; set; }
public Author CreatedBy { get; set; }
public Author UpdatedBy { get; set; }
}
Die Author
Klasse hat Navigationseigenschaften bis zur Book
Klasse, eine für alle vom Autor geschriebenen Bücher und eine für alle von diesem Autor aktualisierten Bücher.
public class Author
{
public int AuthorId { get; set; }
public string Name { get; set; }
public virtual ICollection<Book> BooksWritten { get; set; }
public virtual ICollection<Book> BooksUpdated { get; set; }
}
Das InverseProperty
Attribut wird auf die Navigationseigenschaften in der Author
Klasse angewendet, um die entsprechenden inversen Navigationseigenschaften in der Book
Klasse anzugeben.
public class Book
{
public int BookId { get; set; }
public string Title { get; set; }
public Author CreatedBy { get; set; }
public Author UpdatedBy { get; set; }
}
public class Author
{
public int AuthorId { get; set; }
public string Name { get; set; }
[InverseProperty("CreatedBy")]
public virtual ICollection<Book> BooksWritten { get; set; }
[InverseProperty("UpdatedBy")]
public virtual ICollection<Book> BooksUpdated { get; set; }
}