EntityFramework5代码先行,如何配置不同列名的分表关系?

Posted

技术标签:

【中文标题】EntityFramework5代码先行,如何配置不同列名的分表关系?【英文标题】:EntityFramework5 code first , How configure the table splitting relation with different column name? 【发布时间】:2012-11-21 21:43:47 【问题描述】:

我有两个表,我想用 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】:

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

【讨论】:

请不要只删除链接,而是简要总结一下为什么它适用。链接很快断开。但是,此链接不涵盖 OP 的问题。 感谢您的回答,但我想做的不是“一对一”的关系

以上是关于EntityFramework5代码先行,如何配置不同列名的分表关系?的主要内容,如果未能解决你的问题,请参考以下文章