EF5を使用していますが、次の関係を作成する必要があります
- SavedApplicationQueueとSavedApplicationの間で1対1
 - BatchApplicationQueueとBatchApplicationの間で1対1
 
public abstract class BaseEntity
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public virtual int Id { get; set; }
}
public abstract class Queue : BaseEntity
{
    public string Status { get; set; }
    public DateTime? LastRun { get; set; }
}
public abstract class Application : BaseEntity
{
    public string ApplicationInhertirot { get; set; }
    public string AnotherApplicationInhertirot { get; set; }
}
public class BatchApplication : Application
{
    public bool BatchAppFlag { get; set; }
    public string BatchAppString { get; set; }
    public virtual BatchApplicationQueue BatchApplicationQueue { get; set; }
}
public class SavedApplication : Application
{
    public bool SavedAppFlag { get; set; }
    public string SavedAppString { get; set; }
    public virtual SavedApplicationQueue SavedApplicationQueue { get; set; }
}
public class SavedApplicationQueue : Queue
{
    [Required]
    [ForeignKey("SavedApplication")]
    public virtual SavedApplication SavedApplication { get; set; }
}
public class BatchApplicationQueue :Queue
{
    [Key]
    [ForeignKey("BatchApplication")]
    public override int Id { get; set; }
    [Required]
    public virtual BatchApplication BatchApplication { get; set; }
}
私が持っている流暢さは
modelBuilder.Entity<Application>()
            .Map<SavedApplication>(m =>
                {
                   m.ToTable("SApplication");
                   m.MapInheritedProperties();
                })
            .Map<BatchApplication>(m =>
                {
                   m.ToTable("BApplication");
                   m.MapInheritedProperties();
                });
modelBuilder.Entity<Queue>()
            .Map<SavedApplicationQueue>(m =>
                {
                  m.ToTable("SavedApplicationQueue");
                  m.MapInheritedProperties();
                })
            .Map<BatchApplicationQueue>(m =>
                {
                    m.ToTable("BatchApplicationQueue");
                    m.MapInheritedProperties();
                });
私が抱えている問題は、レコードを作成/追加しようとするときです
テストメソッドEf.Model.Test.UnitTest1.TestMethod1が例外をスローしました:System.InvalidOperationException:シーケンスに複数の一致する要素が含まれています
Idと関係があると思いますが、説明したように関係と多重度を作成しようとしています。