Совет
Сведения о настройке разных имен столбцов первичного ключа в каждой таблице см. в разделе Конфигурация аспектов, относящихся к таблице.
EF создаст следующую схему базы данных для приведенной выше модели.
SQLКопировать
CREATE TABLE [Blogs] (
[BlogId] int NOT NULL IDENTITY,
[Url] nvarchar(max) NULL,
CONSTRAINT [PK_Blogs] PRIMARY KEY ([BlogId])
);
CREATE TABLE [RssBlogs] (
[BlogId] int NOT NULL,
[RssUrl] nvarchar(max) NULL,
CONSTRAINT [PK_RssBlogs] PRIMARY KEY ([BlogId]),
CONSTRAINT [FK_RssBlogs_Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [Blogs] ([BlogId]) ON DELETE NO ACTION
);
Примечание
Если ограничение первичного ключа переименовано, новое имя будет применено ко всем таблицам, сопоставленным с иерархией, будущие версии EF позволят переименовать ограничение только для определенной таблицы, если проблема 19970 устранена.
При использовании массовой конфигурации можно получить имя столбца для определенной таблицы, вызвав .GetColumnName(IProperty, StoreObjectIdentifier)
C#Копировать
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var tableIdentifier = StoreObjectIdentifier.Create(entityType, StoreObjectType.Table);
Console.WriteLine($"{entityType.DisplayName()}\t\t{tableIdentifier}");
Console.WriteLine(" Property\tColumn");
foreach (var property in entityType.GetProperties())
{
var columnName = property.GetColumnName(tableIdentifier.Value);
Console.WriteLine($" {property.Name,-10}\t{columnName}");
}
Console.WriteLine();
}
Конфигурация типа "таблица на конкретный тип"
Примечание
Функция таблицы на конкретный тип (TPC) появилась в EF Core 7.0.
В шаблоне сопоставления TPC все типы сопоставляются с отдельными таблицами. Каждая таблица содержит столбцы для всех свойств соответствующего типа сущности. Это позволяет устранить некоторые распространенные проблемы с производительностью стратегии TPT.
Do'stlaringiz bilan baham: |