You cannot map CultureInfo
class to column in database. But you can ignore this property and create another string property which will be mapped:
modelBuilder.Entity<LocalizedText>()
.Ignore(lt => lt.Language);
modelBuilder.Entity<LocalizedText>()
.Property(lt => lt.TwoLetterISOLanguageName)
.HasColumnName("Language");
And then just set Language
property when TwoLetterISOLanguageName
is assigned:
public class LocalizedText
{
public int Id { get; set; }
public string Text { get; set; }
public CultureInfo Language { get; set; }
public string TwoLetterISOLanguageName
{
get { return Language == null ? null : Language.TwoLetterISOLanguageName; }
set { Language = CultureInfo.GetCultureInfo(value); }
}
}