parent
87cf607086
commit
d1c05cb9f1
@ -1,17 +1,30 @@
|
|||||||
# Relationships
|
# Relationships
|
||||||
|
|
||||||
On parle de propriété de navigation dès qu'on a une propriété qui ne peut pas être une donnée simple (string, nombre, bool...).
|
On parle de propriété de navigation dès qu'on a une propriété qui ne peut pas être une donnée simple (string, nombre, bool...).
|
||||||
Par défaut (ie conventions d'écriture), dans une relation,
|
Par défaut (ie conventions d'écriture), dans une relation,
|
||||||
c'est toujours la primary key qui est utilisée.
|
c'est toujours la primary key qui est utilisée.
|
||||||
On peut utiliser une autre clé en passant par la notation Fluent.
|
On peut utiliser une autre clé en passant par la notation Fluent.
|
||||||
|
|
||||||
|
|
||||||
Le plus commun c'est d'avoir des propriétés de navigation
|
Le plus commun c'est d'avoir des propriétés de navigation
|
||||||
définies sur les deux entités et une clé étrangère (foreign key)
|
définies sur les deux entités et une clé étrangère (foreign key)
|
||||||
du côté de l'entité dépendante.
|
du côté de l'entité dépendante.
|
||||||
* si on une paire de propriétés de navigation sur les deux entités, l'une sera l'inverse de l'autre
|
* si a on une paire de propriétés de navigation sur les deux entités, l'une sera l'inverse de l'autre
|
||||||
* si l'entité dépendante possède une propriété dont le nom vérifie l'un des patrons suivants, alors elle est configurée comme une foreign key:
|
* si l'entité dépendante possède une propriété dont le nom vérifie l'un des patrons suivants, alors elle est configurée comme une foreign key:
|
||||||
* ```<navigationPropertyName><principalKeyPropertyName>```
|
* ```<navigationPropertyName><principalKeyPropertyName>```
|
||||||
* ```<navigationPropertyName>Id```
|
* ```<navigationPropertyName>Id```
|
||||||
* ```<principalEntityName><principalKeyPropertyName>```
|
* ```<principalEntityName><principalKeyPropertyName>```
|
||||||
* ```<principalEntityName>Id```
|
* ```<principalEntityName>Id```
|
||||||
|
* si on a aucune propriété de clé étrangère, une shadow property est créée avec le nom ```<navigationPropertyName><principalKeyPropertyName>``` ou ```<principalEntityName><principalKeyPropertyName>```.
|
||||||
|
* Single Property Navigation vs. Pair Navigation Property
|
||||||
|
* Cascade Delete
|
||||||
|
* ex01: single navigation property (conventions & data annotations)
|
||||||
|
* ex02: single navigation property (fluent api)
|
||||||
|
* ex03: one to one (conventions & data annotations)
|
||||||
|
* ex04: one to one (fluent api)
|
||||||
|
* ex05: one to many (conventions & data annotations)
|
||||||
|
* ex06: one to many (fluent api)
|
||||||
|
* ex07: many to many (conventions & data annotations)
|
||||||
|
* ex08: many to many (fluent api)
|
||||||
|
* ex09: shadow property
|
||||||
|
* ex10: dictionaries (fluent api)
|
Loading…
Reference in new issue