C# 每种类型和fluent api的表

C# 每种类型和fluent api的表,c#,entity-framework,fluent,table-per-type,C#,Entity Framework,Fluent,Table Per Type,我有以下数据库: 一个艺术家可以有很多头衔。标题可以是歌曲或专辑。 在我的代码中,我有以下配置: public class AlbumConfiguration : EntityTypeConfiguration<AlbumDetail> { public AlbumConfiguration() { this.HasKey(a => a.Id); this.Property(a => a.Title);

我有以下数据库:

一个艺术家可以有很多头衔。标题可以是歌曲或专辑。 在我的代码中,我有以下配置:

 public class AlbumConfiguration : EntityTypeConfiguration<AlbumDetail>
{
    public AlbumConfiguration()
    {
        this.HasKey(a => a.Id);
        this.Property(a => a.Title);

        this.HasRequired(a => a.TitleDetail).WithOptional(t => t.Album);    
        this.ToTable("Albums");
    }
}

public class ArtistConfiguration : EntityTypeConfiguration<ArtistDetail>
{
    public ArtistConfiguration()
    {
        this.HasKey(a => a.Id);
        this.Property(a => a.Name);

        this.ToTable("Artists");

    }
    public class TitleConfiguration : EntityTypeConfiguration<TitleDetail>
{
    public TitleConfiguration()
    {
        this.HasKey(a => a.Id);
        this.Property(a => a.Title);

        this.HasRequired(a => a.Artist).WithMany(j => j.Titles).HasForeignKey(a => a.ArtistId);

        this.ToTable("Titles");
    }
}
当我现在希望查询以显示艺术家拥有的相册时,我得到以下错误:

列名“TitleDetail_Id”无效。 列名“AlbumDetail\u Id”无效。 列名“TitleDetail_Id”无效。 列名“TitleDetail_Id”无效。 列名“TitleDetail_Id”无效。 列名“TitleDetail_Id”无效。 列名“Song_Id”无效。 列名“AlbumDetail\u Id1”无效。 列名“TitleDetail_Id”无效。 列名“Song_Id”无效。 列名“AlbumDetail\u Id1”无效


有人能帮我吗?

看这篇文章:和有用的链接:我也找到了这些链接,但我没有找到解决问题的方法。
 IQueryable<AlbumDetail> artistDetail =
            base.Query.Where(x => x.Id == artistId).Include("Titles").OfType<AlbumDetail>();
        return artistDetail.ToList();
SELECT 
[Extent1].[Id] AS [Id], 
'0X0X' AS [C1], 
[Extent2].[Title] AS [Title], 
[Extent2].[ArtistId] AS [ArtistId], 
[Extent3].[Id] AS [Id1], 
[Extent1].[TitleDetail_Id] AS [TitleDetail_Id], 
[Extent4].[Id] AS [Id2]
FROM    [dbo].[Albums] AS [Extent1]
INNER JOIN [dbo].[Titles] AS [Extent2] ON [Extent1].[Id] = [Extent2].[Id]
LEFT OUTER JOIN [dbo].[Songs] AS [Extent3] ON [Extent1].[Id] = [Extent3].[TitleDetail_Id]
LEFT OUTER JOIN [dbo].[Albums] AS [Extent4] ON [Extent1].[Id] = [Extent4].[TitleDetail_Id]