While working on my personal project ๐๐บ๐ฝ๐น๐ผ๐๐ฒ๐ฒ ๐ฃ๐ฒ๐ฟ๐ณ๐ผ๐ฟ๐บ๐ฎ๐ป๐ฐ๐ฒ ๐ฅ๐ฒ๐๐ถ๐ฒ๐ ๐ฆ๐๐๐๐ฒ๐บ, I explored some valuable EF Core configurations. Hereโs a quick summary of what I learned:
- .๐๐ฎ๐๐๐ผ๐ป๐๐ฒ๐ฟ๐๐ถ๐ผ๐ป()
Used to store value objects like ReviewScore
as simple types in the database:
builder.Property(r => r.Score).HasConversion(v => v.Value, v => new ReviewScore(v));
๐ฃ๐๐ฟ๐ฝ๐ผ๐๐ฒ: Simplifies storing custom value objects (like Score
) as primitive values (like int
).
- .๐ข๐๐ป๐๐ข๐ป๐ฒ()
Used for complex owned types like Address
within the Employee
model:
builder.OwnsOne(e => e.Address, a => a.Property(p => p.City));
๐ฃ๐๐ฟ๐ฝ๐ผ๐๐ฒ: Embeds value objects directly into the same table when they donโt need a separate identity.
- .๐๐ฎ๐๐ ๐ฎ๐ป๐(), .๐ช๐ถ๐๐ต๐ข๐ป๐ฒ(), ๐ฎ๐ป๐ฑ ๐๐ฒ๐น๐ฒ๐๐ฒ๐๐ฒ๐ต๐ฎ๐๐ถ๐ผ๐ฟ
Configured relationships with delete behaviors:
builder.HasMany(e => e.Reviews).WithOne(r => r.Employee).OnDelete(DeleteBehavior.Cascade);
builder.HasMany(e => e.Goals).WithOne().OnDelete(DeleteBehavior.NoAction);
๐ฃ๐๐ฟ๐ฝ๐ผ๐๐ฒ: Controls how dependent entities behave when their parent (e.g., Employee
) is deleted.
- ๐๐ฒ๐ฒ๐ฑ๐ฏ๐ฎ๐ฐ๐ธ ๐บ๐ผ๐ฑ๐ฒ๐น ๐ฐ๐ผ๐ป๐ณ๐ถ๐ด๐๐ฟ๐ฎ๐๐ถ๐ผ๐ป
Maintained a clean foreign key relationship:
builder.HasOne(f => f.Employee).WithMany(e => e.Feedbacks).HasForeignKey(f => f.EmployeeId);
๐๐ฎ๐๐ฒ ๐๐ผ๐ ๐๐ฟ๐ถ๐ฒ๐ฑ ๐๐๐ถ๐ป๐ด .๐๐ฎ๐๐๐ผ๐ป๐๐ฒ๐ฟ๐๐ถ๐ผ๐ป()
๐ผ๐ฟ .๐ข๐๐ป๐๐ข๐ป๐ฒ()
๐ถ๐ป ๐๐ผ๐๐ฟ ๐๐ ๐๐ผ๐ฟ๐ฒ ๐ฝ๐ฟ๐ผ๐ท๐ฒ๐ฐ๐๐?
- ๐๐ผ๐ ๐ฑ๐ผ ๐๐ผ๐ ๐บ๐ผ๐ฑ๐ฒ๐น ๐๐ฎ๐น๐๐ฒ ๐ผ๐ฏ๐ท๐ฒ๐ฐ๐๐ ๐น๐ถ๐ธ๐ฒ
๐ฆ๐ฐ๐ผ๐ฟ๐ฒ
,๐ฅ๐ฎ๐๐ถ๐ป๐ด
, ๐ผ๐ฟ๐๐ฑ๐ฑ๐ฟ๐ฒ๐๐
? - ๐ช๐ต๐ฎ๐ ๐ฑ๐ฒ๐น๐ฒ๐๐ฒ ๐ฏ๐ฒ๐ต๐ฎ๐๐ถ๐ผ๐ฟ๐ ๐ฑ๐ผ ๐๐ผ๐ ๐ฐ๐ผ๐บ๐บ๐ผ๐ป๐น๐ ๐ฎ๐ฝ๐ฝ๐น๐ ๐ถ๐ป ๐ฝ๐ฎ๐ฟ๐ฒ๐ป๐-๐ฐ๐ต๐ถ๐น๐ฑ ๐ฟ๐ฒ๐น๐ฎ๐๐ถ๐ผ๐ป๐๐ต๐ถ๐ฝ๐?
Top comments (0)