.net LINQ到SQL继承InvalidOperationException

.net LINQ到SQL继承InvalidOperationException,.net,linq,orm,.net,Linq,Orm,在尝试了解LINQ和继承映射时,当执行connectionstring行时,在DBContext.cs中出现异常: 无法检索继承子类型“电影”的表,请改为尝试“媒体”的表 DBContext.cs [Database] public class DBContext : DataContext { public DBContext() : base(System.Configuration.ConfigurationManager.ConnectionStrings["Connection

在尝试了解LINQ和继承映射时,当执行connectionstring行时,在DBContext.cs中出现异常:

无法检索继承子类型“电影”的表,请改为尝试“媒体”的表

DBContext.cs

[Database]
public class DBContext : DataContext
{
    public DBContext() : base(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString){ }

    public Table<Member> members;
    public Table<Media> media;
    public Table<Movie> movies;
    public Table<Game> games;
    public Table<Track> tracks;
    public Table<Album> albums;
  //  public Table<Loaned> loaned;
}
[Table(Name="media")]
[InheritanceMapping(Code = 1, Type = typeof(Movie), IsDefault=true)]
[InheritanceMapping(Code = 2, Type = typeof(Game))]
[InheritanceMapping(Code = 3, Type = typeof(Album))]
[InheritanceMapping(Code = 4, Type = typeof(Track))]
public class Media
{
    [Column(IsPrimaryKey=true)]
    public string itemId;

    [Column]
    public string title { get; set; }

    [Column]
    public string price { get; set; }

    [Column(IsDiscriminator=true)]
    public int itemType { get; set; }
}
public class Movie : Media
{
    [Column]
    public int year { get; set; }
}
Movie.cs

[Database]
public class DBContext : DataContext
{
    public DBContext() : base(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString){ }

    public Table<Member> members;
    public Table<Media> media;
    public Table<Movie> movies;
    public Table<Game> games;
    public Table<Track> tracks;
    public Table<Album> albums;
  //  public Table<Loaned> loaned;
}
[Table(Name="media")]
[InheritanceMapping(Code = 1, Type = typeof(Movie), IsDefault=true)]
[InheritanceMapping(Code = 2, Type = typeof(Game))]
[InheritanceMapping(Code = 3, Type = typeof(Album))]
[InheritanceMapping(Code = 4, Type = typeof(Track))]
public class Media
{
    [Column(IsPrimaryKey=true)]
    public string itemId;

    [Column]
    public string title { get; set; }

    [Column]
    public string price { get; set; }

    [Column(IsDiscriminator=true)]
    public int itemType { get; set; }
}
public class Movie : Media
{
    [Column]
    public int year { get; set; }
}
下面是调用这一切的代码:

    public static void GetAll()
    {
        using (DBContext db = new DBContext())
        {
            IEnumerable<Media> media = from m in db.media select m;
        }
    }
}
publicstaticvoidgetall()
{
使用(DBContext db=new DBContext())
{
IEnumerable媒体=从数据库中的m开始。媒体选择m;
}
}
}

我有一种感觉,我缺少了一些讨厌的映射属性。

似乎我没有注意LINQ的
单表继承。我删除了所有内容,但:

public Table<Member> members;
public Table<Media> media;
公共表成员;
公共桌面媒体;
现在它起作用了。我将每个媒体项都放在自己的表中,这是不受支持的