Realtionships.md

EFCore3_Reforged
Marc CHEVALDONNE 5 years ago
parent d480c056ca
commit 87cf607086

@ -97,6 +97,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "p08_BDD_EntityFramework", "
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "chap042_EntityFramework", "chap042_EntityFramework", "{ED951AD1-2EB1-49CC-9DBE-E3360E11525B}"
ProjectSection(SolutionItems) = preProject
p08_BDD_EntityFramework\Relationships.md = p08_BDD_EntityFramework\Relationships.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "03. Entity relationships with CodeFirst", "03. Entity relationships with CodeFirst", "{593200F9-6D14-43BC-9289-8BB75FAC6552}"
EndProject
@ -568,6 +571,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_041_004_ConsoleTests_w_S
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_009_DataSeeding", "p08_BDD_EntityFramework\ex_042_009_DataSeeding\ex_042_009_DataSeeding.csproj", "{B5CEC904-1475-4215-A20A-01BDD219AE25}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04. Relationships", "04. Relationships", "{C7672736-AA73-4B7E-B5C6-A7A984216372}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -4993,6 +4998,7 @@ Global
{26B0F58C-3373-4965-A00A-FB9F9AA2DFC5} = {78374D80-5BE7-425D-BE62-AD8F26491112}
{2249C4B0-563D-44C8-AAA5-C8366A8F509C} = {56C5A51B-16E9-4F93-9C32-8F91710391E8}
{B5CEC904-1475-4215-A20A-01BDD219AE25} = {78374D80-5BE7-425D-BE62-AD8F26491112}
{C7672736-AA73-4B7E-B5C6-A7A984216372} = {55E00151-58A6-4E7D-9457-0BB8213B82F5}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8D31C3AE-36FF-4667-A2A7-0E670245A59E}

@ -31,7 +31,8 @@ Ce chapitre s'attardera sur le lien entre le mod
* [**ex_042_007 : Value Generation**](ex_042_007_ValueGeneration) : explique comment faire générer des valeurs automatiquement lors de l'insertion ou de la mise à jour
* [**ex_042_008 : Data Seeding before Entity Framework 2.1**](ex_042_008_DataSeeding_before_EF2.1) : explique comment utiliser un stub (méthode qui était recommandée avant EF Core 2.1)
* [**ex_042_009 : Data Seeding**](ex_042_009_DataSeeding) : explique comment utiliser un stub (méthode recommandée depuis EF Core 2.1)
* [**Relationships**](Relationships.md) : en cliquant [ici](Relationships.md), vous aurez plus de détails sur les relations entre entités
* [**ex_042_010 : One To One relationship with data annotations**](ex_042_009_DataSeeding) :
3. *Schemas and migrations* :
Le but de ce chapitre sera de vous montrer comment garder votre modèle et votre base de données synchronisés.
4. *Querying (LINQ to SQL) and saving data* :

@ -0,0 +1,17 @@
# 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...).
Par défaut (ie conventions d'écriture), dans une relation,
c'est toujours la primary key qui est utilisée.
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
définies sur les deux entités et une clé étrangère (foreign key)
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 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>Id```
* ```<principalEntityName><principalKeyPropertyName>```
* ```<principalEntityName>Id```

@ -14,9 +14,9 @@
* V 001, 002, 003 entity types, entity properties
* V 004, 005, 006 keys, 007 generated values
* ? backing fields?
* 008 seeding data
* shadow properties
* V 008, 009 seeding data
* ###### relationships
* shadow properties
* single navigation property
* cascade delete
* one to one

Loading…
Cancel
Save