EntityFramework5代码首先,如何使用不同的列名配置表拆分关系?

时间:2012-11-21 21:43:47

标签: c# sql code-first entity-framework-5

我想用EntityFramework查询两个表,使用主表,这是用于存储辅助数据的第二个表,我希望我可以进行左连接,但我不能这样做,这里是元素:

public class TableA
{
    public int Id {get; set;}
    public string Value {get;} set
}

public class OptionalDataTableB
{
    public int OptionalDataTableBId {get; set;}
    public string OtherValue {get; set;}
}

这里是映射类

public class TableAMap: EntityTypeConfiguration<TableA>
{
    public TableAMap ()
    {
        this.HasKey (e => e.Id);
        this.Property (e => e.Id)
                  . IsRequired ()
             .HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);

    }
}

public class OptionalDataTableBMap: EntityTypeConfiguration<OptionalDataTableB>
{
    public OptionalDataTableB ()
    {
        this.HasKey (e => e.OptionalDataTableBId);
        this.Property (e => e.OptionalDataTableBId)
           . IsRequired ()
    }
}

我想与DbContext建立关系

public class MyDbContext: DbContext
{
    protected override void OnModelCreating (DbModelBuilder ModelBuilder)
    {
        modelBuilder.Configurations.Add (new Mapping.TableAMap());
        modelBuilder.Configurations.Add (new Mapping.OptionalDataTableBMap());
    }
}

如何配置映射可以生成这种请求? :

select * 
from TableA 
    left join OptionalDataTableB On TableA.Id = OptionalDataTableB.OptionalDataTableBId

1 个答案:

答案 0 :(得分:0)

MSDN中的以下内容应该回答您的问题:http://msdn.microsoft.com/en-us/data/hh134698.aspx