如何在TPT,Entity Framework中映射派生类的列?

时间:2016-05-03 13:59:56

标签: c# entity-framework

我有两个实体 - WorkItem和TestSuite - 其中WorkItem是抽象类,TestSuite实现它。问题是如何将TestSuite属性映射到数据库列?在Workitem的情况下,我可以这样做,如下所示。但是在TestSuite的情况下,我不能。 ReSharper不提供Property方法。

如何映射派生类的列?在下面的示例中:如何将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" );

工作项目表:

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 个答案:

答案 0 :(得分:0)

尽管我已经重新启动了Visual Studio几次,以排除intellisense / resharper避免加载可用方法,属性的可能性,但是一天后属性方法出现了。