Как сопоставить столбцы производного класса в TPT, Entity Framework?

У меня есть две сущности-WorkItem и TestSuite — где WorkItem является абстрактным классом, а TestSuite реализует его. Вопрос в том, как сопоставить свойства TestSuite со столбцами базы данных? В случае Workitem я могу сделать это, как вы можете видеть ниже. Но в случае TestSuite, я не могу. ReSharper не предлагает метод свойства.

Как сопоставить столбцы производного класса? В примере ниже: как сопоставить WORKITEM_TEST_SUITE.Столбец TEST_SUITE_TYPE_ID для класса TestSuiteEntity? Это возможно? Должен ли я жить с тем фактом, что EF собирается создать имена столбцов для меня?

Что я делал до сих пор?

  • Я много искал, и каждая статья имеет дело только с сопоставлением таблиц, а не с сопоставлением столбцов

Для меня важно иметь контроль над сопоставлением столбцов.

Сущность WorkItem:

modelBuilder.Entity<WorkItemEntity> ( ).ToTable ( "WORKITEM" );
            modelBuilder.Entity<WorkItemEntity> ( ).HasKey ( k => k.Id );
            modelBuilder.Entity<WorkItemEntity> ( ).Property ( p => p.Id ).HasColumnName ( "ID" );

Таблица Workitem:

CREATE TABLE [dbo].[WORKITEM]
(
    [ID] INT NOT NULL PRIMARY KEY IDENTITY(1,1), 
    -- other columns
)

Сущность TestSuite:

modelBuilder.Entity<TestSuiteEntity> ( ).ToTable ( "WORKITEM_TEST_SUITE" );
            modelBuilder.Entity<TestSuiteEntity>()//--> no property method!

Таблица, где хранится материал TestSuite.

CREATE TABLE [dbo].[WORKITEM_TEST_SUITE] (  [ID] INT NOT NULL PRIMARY KEY, 
    [TEST_SUITE_TYPE_ID] INT NOT NULL, 
    -- other columns )

Обновление:

Несмотря на то, что я перезапустил Visual Studio несколько раз, чтобы исключить возможность intellisense / resharper не загрузить доступные методы, свойства правильно, через день появляется метод свойства.

1 ответ

  1. Несмотря на то, что я перезапустил Visual Studio несколько раз, чтобы исключить возможность intellisense / resharper не загрузить доступные методы, свойства правильно, через день появляется метод свойства.