Cześć,
Mam taki interfejs:
public interface IGroup {
long Id { get; set; }
long UserId { get; set; }
string Name { get; set; }
ILanguage Language1 { get; set; }
ILanguage Language2 { get; set; }
int State { get; set; }
}
Gdzie ILanguage to taki interfejs:
LanguageType Type { get; }
string Code { get; }
string Description { get; }
string Name { get; }
string ShortName { get; }
ILangauge to interfejs definiujący język i mam ich kilka, np polski angielski i nieznany. Chciałbym stworzyć bazę danych za pomocą EntityFramework z tym, że tabela Group zawierała tylko Type z pola Language1 i Language2. Dodatkowo, aby w czasie selectu z bazy były tworzone odpowiednie obiekty, za pomocą jakieś konwertera. Czy jest możliwość czegoś takiego?
Póki co wymyśliłem taki sposób, ale zastanawia mnie czy nie dało by się zrobić tego w czasie rzeźbienia w bazie.
[JsonIgnore]
public LanguageType Language1Type {
get { return Language1 == null ? LanguageType.Default : Language1.Type; }
set {
Language1 = LanguageFactory.GetLanguage(value);
}
}
[NotMapped]
public ILanguage Language1 { get; set; }
[JsonIgnore]
public LanguageType Language2Type {
get { return Language2 == null ? LanguageType.Default : Language2.Type; }
set {
Language2 = LanguageFactory.GetLanguage(value);
}
}
[NotMapped]
public ILanguage Language2 { get; set; }