Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple classes mapping to the same table in Entity Framework 4.1 Fluent API

I have a very simple model that maps to one table (Projects) in my database. I have chosen to abstract out images to its own class.

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; }
}

How would I go about wiring up my model to the table in the database using the code below:

public class Context : DbContext
{
    public DbSet<Project> Projects { get; set; }

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

Thanks

like image 789
Thomas Avatar asked Mar 22 '11 21:03

Thomas


2 Answers

You object model will be mapped to one single table as it stands now, no fluent API is required. Code First will automatically mark the Image class as a Complex Type based on conventions.

like image 104
Morteza Manavi Avatar answered Nov 16 '22 14:11

Morteza Manavi


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>();
    }
}
like image 37
Leonardo Leandro Avatar answered Nov 16 '22 13:11

Leonardo Leandro