I am using EF Code First (4.3.1) in 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 as I want it.
The domain model has two classes: Painting and Gallery . Each Painting belongs to one Gallery , and Gallery has two virtual properties that point to Painting : one to indicate which of the paintings is the cover, and one of them - the image of the slider is displayed on the main page.
The classes are as follows. I removed some annotations and irrelevant properties to make them 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 the correct db schema for both classes and its relationships, the only small problem I have is that I have not found a way to manage the column names that it gives the Cover and Slider virtual properties in the Gallery table.
He will call 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 unrelated word, and it did not appear in the pattern."
I would call it CoverPaintingId without underlining.
Any help is appreciated. Thanks
source share