'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 |
|---|
