'Include Operation Left out Join key

Here is my configuration and model class and information of Code First

public class TestDatabaseContext : DbContext
{
    public TestDatabaseContext(string connectionString)
        : base(new SQLiteConnection(connectionString), true)
    {
        Database.Log = log => Debug.WriteLine(log);

        Database.SetInitializer<TestDatabaseContext>(null);
        Configuration.LazyLoadingEnabled = false;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<TestScriptItem>()
            .HasRequired(item => item.Category)
            .WithRequiredPrincipal(category => category.ScriptItem);
    }

    public DbSet<TestScriptItem> Scriptes { get; set; }
}

[Table("tb_script")]
public class TestScriptItem
{
    [Key]
    [Column("tb_script_id")]
    public int ID { get; set; }

    [Column("name")]
    public string Name { get; set; }

    [Column("tb_category_id")]
    public int? CategoryId { get; set; }

    public virtual TestCategoryInfo Category { get; set; }
}

[Table("tb_category")]
public class TestCategoryInfo
{
    [Key]
    [Column("tb_category_id")]
    public int Id { get; set; }

    [Column("priority")]
    public int Priority { get; set; }

    public virtual TestScriptItem ScriptItem { get; set; }
}

SQL Query From EF6

SELECT 
[Extent1].[tb_script_id] AS [tb_script_id], 
[Extent1].[name] AS [name], 
[Extent1].[tb_category_id] AS [tb_category_id], 
[Extent2].[tb_category_id] AS [tb_category_id1], 
[Extent2].[priority] AS [priority]
FROM  [tb_script] AS [Extent1]
LEFT OUTER JOIN [tb_category] AS [Extent2] ON [Extent1].[tb_script_id] = [Extent2].[tb_category_id]

what I expect SQL query was

left outer join tb_script.tb_category.id = tb_category.tb_category.id

Is there any missing I should annotation or code first?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source