I've got an entity like this :
public class Course {
public CultureInfo Culture {get; set;}
:
}
And I want to map just the Name
property of CultureInfo
to a single column in the table that Entity Framework generates for me.
How would I go about this? Currently I've tried looking at the OnModelCreating() method of the DbContext, but I'm not finding anything that is standing out.
I'm using Entity Framework 4.1 in and MVC 3 application with a Code First approach.
Many thanks.
Unfrotunatelly EF can't do it this way. The workaround is defining separate property with the Name
which will be mapped to the database and marking your Culture
property as not mapped.
public class Course
{
public CultureInfo Culture { get; set; }
public string CultureName
{
get
{
if (Cuture != null)
{
return Culture.Name;
}
return null;
}
set
{
// same check for value can be placed here
Culture = new CultureInfo(value);
}
}
}
And in mapping you will define:
modelBuilder.Entity<Course>()
.Ignore(c => c.Culture);