データがデータベースから読み取られるときにスペースを取り除くカスタムタイプを記述して、変換された文字列を列挙型にマップすることができます。このアプローチの問題は、スペースをどこに戻すかわからないためにデータをデータベースに保存する場合です(スペースを戻す場所を追跡するスパゲッティコードに満足している場合を除く)。
または、データベースにマップされたプロパティの内容に基づいて列挙型を返す列挙型のクラスに追加のプロパティを設定することもできます。以下の例
public class Document
{
public virtual string DocumentName {get; set;}
public EDocumentName Name
{
get
{
if (DocumentName == "Title Holder")
{
return EDocumentName.TitleHolder;
}
}
set
{
if(value == EDocumentName.TitleHolder)
{
DocumentName = "Title Holder";
}
}
}
}
public enum EDocumentName
{
TitleHoldder
}