Entity Framework 4.1 Fluent API 中的多个类映射到同一个表

Posted

技术标签:

【中文标题】Entity Framework 4.1 Fluent API 中的多个类映射到同一个表【英文标题】:Multiple classes mapping to the same table in Entity Framework 4.1 Fluent API 【发布时间】:2011-03-22 21:24:23 【问题描述】:

我有一个非常简单的模型,它映射到我数据库中的一个表(项目)。我选择将图像抽象到它自己的类中。

public class Project

    public long Id  get; set; 
    public string Name  get; set; 
    public Image Images  get; set; 


public class Image

    public string Thumbnail  get; set; 
    public string PrimaryImage  get; set; 

我将如何使用以下代码将我的模型连接到数据库中的表:

public class Context : DbContext

    public DbSet<Project> Projects  get; set; 

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    
        ????
    

谢谢

【问题讨论】:

【参考方案1】:

您的对象模型将被映射到现在的一个表,不需要流畅的 API。 Code First 会根据约定自动将 Image 类标记为Complex Type。

【讨论】:

【参考方案2】:
public class Project

    public long Id  get; set; 
    public string Name  get; set; 
    public Image Image  get; set; 


public class Image

    public string Thumbnail  get; set; 
    public string PrimaryImage  get; set; 
    

public class YourContext : DbContext

    public DbSet<Project> Projects get; set;         

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    
        modelBuilder.ComplexType<Image>();
    

【讨论】:

以上是关于Entity Framework 4.1 Fluent API 中的多个类映射到同一个表的主要内容,如果未能解决你的问题,请参考以下文章

Entity Framework 4.1 InverseProperty 属性和ForeignKey

Entity Framework 4.1 Fluent API 属性

卸载 Entity Framework 4.1 六月 CTP

通过 Entity Framework 4.1 中的用户定义函数进行热切加载

Entity Framework 4.1 - 映射错误的模式

Entity Framework 4.1 - 非键列之间的关系