Entity Framework Code First - Virtual Property Column Naming

Viewed 9277

I'm using EF Code First (4.3.1) on a personal ASP.NET MVC 3 project, with a very simple domain model, and I'm almost at the point where EF will generate the DB schema the way I want it to.

The domain model has two classes: Painting and Gallery. Each Painting belongs to a single Gallery, and the Gallery has two virtual properties pointing to Painting: One to indicate which of the painting is it's cover image, and one for which of the paintings is the Slider image displayed on the home page.

The classes are as follow. I've removed some annotations and irrelevant properties to make it readable.

public class Gallery
{
    public Gallery()
    {
        Paintings = new List<Painting>();
    }

    [ScaffoldColumn(false)]
    [Key]
    public int GalleryId { get; set; }

    public string Name { get; set; }

    [ScaffoldColumn(false)]
    [Column("LaCover")]
    public Painting Cover { get; set; }

    [ScaffoldColumn(false)]
    [Column("ElSlider")]
    public Painting Slider { get; set; }

    [ScaffoldColumn(false)]
    public virtual List<Painting> Paintings { get; set; }
}

and painting:

public class Painting
{
    [ScaffoldColumn(false)]
    [Key]
    public int PaintingId { get; set; }

    public string Name { get; set; }

    public int GalleryId { get; set; }

    [Column("GalleryId")]
    [ForeignKey("GalleryId")]
    [InverseProperty("Paintings")]
    public virtual Gallery Gallery { get; set; }

    public string Filename { get; set; }
}

It generates a correct db schema for both classes and its relationships, the only small issue I have is that I haven't found a way to control the column names it gives to the virtual properties of Cover and Slider in the Gallery table.

It'll name them Cover_PaintingId and Slider_PaintingId.

I tried using the [Column("columnNameHere")] attribute, but that doesn't affect it at all. As in "I typed a certain non related word and it didnt show up in the schema".

I'd like to name it CoverPaintingId, without the underscore.

Any help is greatly appreciated. Thanks

2 Answers
Related