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代码先行,如何配置不同列名的分表关系?的主要内容,如果未能解决你的问题,请参考以下文章

实体框架代码优先 - 为 SqlQuery 配置映射

在nginx上面配置了ssl证书,用来https访问,但是内网可以访问,外网不能访问,求高人指点!先行谢过!

Cakephp 3:如何忽略特定查询的先行查找?

EF| CodeFirst 代码先行

如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?

在 .NET4.5 上安装 EntityFramework5.0.0 后错误:“System.Data.Entity.Internal.AppConfig”的类型初始化程序在运行时引发异常