Skip to content

Commit 65e3ba4

Browse files
committed
Add documentation for self-referencing relationships and include related image
1 parent 8da20e5 commit 65e3ba4

File tree

126 files changed

+185
-124
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+185
-124
lines changed

Modules/Intent.Modules.EntityFrameworkCore/Intent.EntityFrameworkCore.imodspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<package>
33
<id>Intent.EntityFrameworkCore</id>
4-
<version>5.0.32-pre.2</version>
4+
<version>5.0.32-pre.3</version>
55
<supportedClientVersions>[4.5.0-a, 5.0.0-a)</supportedClientVersions>
66
<summary>Provides the Entity Framework Core, Object Relational Mapper framework</summary>
77
<description>Provides the Entity Framework Core, Object Relational Mapper framework</description>

Modules/Intent.Modules.EntityFrameworkCore/Intent.Metadata/Module Builder/Intent.EntityFrameworkCore/Elements/Module Documentation/f9e7d2cd-0a4f-413d-8917-d4f64eac580a.xml

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
<property name="207e8583-2ba5-4ea3-84aa-2f65cd5915ca" display="Href" value="https://docs.intentarchitect.com/articles/modules-dotnet/intent-entityframeworkcore/intent-entityframeworkcore.html#many-to-many-relationship-modeling" isActive="true" />
114114
<property name="21d13790-2910-475c-b58f-9d350f2e13c6" display="Designers" value="[&quot;6ab29b31-27af-4f56-a67c-986d82097d63&quot;]" isActive="true" />
115115
<property name="8642b1d1-93f9-4f5f-b5ae-ad5fc20d7a46" display="Elements" value="[]" isActive="true" />
116-
<property name="f55a1f0c-40dd-48b4-b985-8360933e6a47" display="Tags" value="ef entityframework relationship association many manytomany" isActive="true" />
116+
<property name="f55a1f0c-40dd-48b4-b985-8360933e6a47" display="Tags" value="ef entityframework relationship association many manytomany join bridge" isActive="true" />
117117
</properties>
118118
</stereotype>
119119
</stereotypes>
@@ -147,5 +147,32 @@
147147
<metadata />
148148
<childElements />
149149
</childElement>
150+
<childElement id="ff069e64-ed21-41b9-9171-8396c3ed1306" type="Documentation Topic" typeId="5cc56ebc-6b61-41a6-a452-8efd9382da6f">
151+
<name>Self-Referencing Relationships</name>
152+
<display>Self-Referencing Relationships</display>
153+
<isAbstract>false</isAbstract>
154+
<genericTypes />
155+
<isMapped>false</isMapped>
156+
<parentFolderId>f9e7d2cd-0a4f-413d-8917-d4f64eac580a</parentFolderId>
157+
<packageId>a9d2a398-04e4-4300-9fbb-768568c65f9e</packageId>
158+
<packageName>Intent.EntityFrameworkCore</packageName>
159+
<stereotypes>
160+
<stereotype stereotypeDefinitionId="83dfd8ae-5086-4e41-94c2-7110d5a49b4c" name="Settings">
161+
<addedByDefault>true</addedByDefault>
162+
<definitionPackageName>Intent.ModuleBuilder</definitionPackageName>
163+
<definitionPackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</definitionPackageId>
164+
<properties>
165+
<property name="2792ad9a-2afd-4350-bac6-bdcf4b701ff1" display="Description" value="How to modeling a self-referencing relationship." isActive="true" />
166+
<property name="4fa553d3-1b96-4f63-bdb9-3237eca31f6b" display="Icon" value="{&quot;type&quot;:0,&quot;source&quot;:&quot;data:image/png;base64,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&quot;}" isActive="true" />
167+
<property name="207e8583-2ba5-4ea3-84aa-2f65cd5915ca" display="Href" value="https://docs.intentarchitect.com/articles/modules-dotnet/intent-entityframeworkcore/intent-entityframeworkcore.html#self-referencing-relationships" isActive="true" />
168+
<property name="21d13790-2910-475c-b58f-9d350f2e13c6" display="Designers" value="[&quot;6ab29b31-27af-4f56-a67c-986d82097d63&quot;]" isActive="true" />
169+
<property name="8642b1d1-93f9-4f5f-b5ae-ad5fc20d7a46" display="Elements" value="[]" isActive="true" />
170+
<property name="f55a1f0c-40dd-48b4-b985-8360933e6a47" display="Tags" value="ef entityframework relationship association many self reference" isActive="true" />
171+
</properties>
172+
</stereotype>
173+
</stereotypes>
174+
<metadata />
175+
<childElements />
176+
</childElement>
150177
</childElements>
151178
</class>

Modules/Intent.Modules.EntityFrameworkCore/Intent.Metadata/Module Builder/Intent.EntityFrameworkCore/Intent.EntityFrameworkCore.pkg.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<definitionPackageName>Intent.ModuleBuilder</definitionPackageName>
3737
<definitionPackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</definitionPackageId>
3838
<properties>
39-
<property name="4bb9695b-6004-46e1-acea-c48c60c5f8ce" display="Version" value="5.0.32-pre.0" isActive="true" />
39+
<property name="4bb9695b-6004-46e1-acea-c48c60c5f8ce" display="Version" value="5.0.32-pre.3" isActive="true" />
4040
<property name="177a2415-e749-46e7-8257-440e19ecfb5e" display="API Namespace" isActive="true" />
4141
<property name="0d2ae582-090e-42d6-a7d6-689144433254" display="NuGet Package Id" isActive="true" />
4242
<property name="27cf6544-a9a2-4992-9fef-51d0ed49e66e" display="NuGet Package Version" value="" isActive="true" />

Modules/Intent.Modules.EntityFrameworkCore/Intent.Modules.EntityFrameworkCore.application.deviations.log.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<approvedByDisplayName>Joel Turner</approvedByDisplayName>
1313
<approvedAt>2024-08-20T12:20:32.9304346Z</approvedAt>
1414
<deviationsHash>39EE393C508E9C7968649C7A3F882D996EDD9A91F7CD1434E12117323525C767</deviationsHash>
15-
<fileHash>BBBAEE749B5C01EEB912E4968BCC1F78155632645527CACC0257299D0B1DE9F2</fileHash>
15+
<fileHash>AB918E8B2D4E8151C18E5CC135B3D45AD9F7257D54CD4CBF495CDCEF3CBC04A3</fileHash>
1616
</file>
1717
<file>
1818
<correlationId>Intent.ModuleBuilder.TemplateRegistration.FilePerModel#96f7b6e6-79da-4f5e-b095-3d603777968b</correlationId>
@@ -51,7 +51,7 @@
5151
<approvedByDisplayName>Joel Turner</approvedByDisplayName>
5252
<approvedAt>2024-08-20T12:20:32.9394616Z</approvedAt>
5353
<deviationsHash>67712BBD9D92F06392D23CA6C17AC8ED892D2D68519E998F62B6442BF57A4B39</deviationsHash>
54-
<fileHash>59C8AAEFDAEE3F4B10A4DE06CD2886710F73BCBF93ACA92C7B00FB54B158A049</fileHash>
54+
<fileHash>735EC8EF3317AED2CD8856EF79C0C50E19A257920D9A9C42D5218400790AED9A</fileHash>
5555
</file>
5656
<file>
5757
<correlationId>Intent.ModuleBuilder.TemplateRegistration.FilePerModel#aba7dad6-c66b-4476-9470-0ab8786b5b4d</correlationId>

Modules/Intent.Modules.EntityFrameworkCore/docs/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,19 @@ When using an implicit many-to-many relationship, you can still customize the ge
191191

192192
> For more information on configuring the join table using the `Join Table` stereotype, refer to the [Intent.Metadata.RDBMS module documentation](https://docs.intentarchitect.com/articles/modules-common/intent-metadata-rdbms/intent-metadata-rdbms.html#create-join-table-constraint).
193193
194+
### Self-Referencing Relationships
195+
196+
When modeling parent-child hierarchies, you may need to create a self-referencing association where an entity has a relationship to itself. This is common for organizational structures, category hierarchies, file systems, and similar scenarios.
197+
198+
![Self reference association](images/many-to-one-self-reference.png)
199+
200+
When creating a self-referencing relationship in Intent Architect, it is important to use an **Aggregational relationship** (indicated by a white diamond) rather than a Compositional relationship (black diamond).
201+
202+
- **Many-to-One self-reference**: Create a `New Association → Many to One` relationship from the entity to itself.
203+
- **Optional self-reference**: Create a `New Association → Many to Zero-or-One` relationship if the relationship is optional.
204+
205+
206+
194207
### Modeling Inheritance
195208

196209
In Entity Framework Core there are 3 ways to model inheritance, namely:
13.8 KB
Loading

Modules/Intent.Modules.EntityFrameworkCore/release-notes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
- Improvement: Added support for singular DBSet names
44
- Improvement: Updated NuGet package versions.
5+
- Improvement: Doc on self-referencing.
56

67
### Version 5.0.31
78

0 commit comments

Comments
 (0)