dotnet / dotnet/EntityFramework.Docs

Document how to compensate for conventions different in EF Core than EF6

Open
#1,971 1 comment 0 reactions 0 assignees View on GitHub
area-model-building consider-for-next-release
Dominant language
Mermaid
Stars
1.7k
Forks
2k
Avg merge
7d 23h
Merged PRs (30d)
16

Description

For example, shadow FK property names in EF Core are `PrincipalId` rather than the `Principal_Id` name used by independent associations in EF6. This can be fixed with something like:

```C#
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Other model building here...

foreach (var foreignKey in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetDeclaredForeignKeys()))
{
// Note that something different would be needed for composite keys
if (foreignKey.Properties.Count == 1)
{
foreignKey.Properties[0].SetColumnName(foreignKey.PrincipalEntityType.Name + "_Id");
}
}
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.