Дозвуковая 3: Простой репозиторий. Как отобразить перечисление в столбец таблицы - PullRequest
3 голосов
/ 13 июля 2009

У меня есть таблица БД (профиль), чтобы описать человека. В этой таблице есть столбец «Секс» (int). В части .NET у меня есть:

public enum Sex { Male = 1, Female = 2 } 

public class Profile{
    public int ID {get; set;}
    public Sex Sex {get; set;}
}
...
SimpleRepository _repo = new SimpleRepository("ConnectionString");
_repo.Add<Profile>(profile);

После этой операции Subsonic вставляет новую строку, но поле "Sex" имеет значение NULL. Я пробовал INT и VARCHAR типа для столбца "Sex", но безрезультатно. Также я попробовал другое имя для enum, например "SexEnum". Есть ли у вас какие-либо идеи? Может быть, требуется какое-то соглашение об именах или специальный тип для столбца таблицы. Заранее спасибо.

1 Ответ

2 голосов
/ 13 июля 2009

Я предполагаю, что вы привыкли использовать что-то вроде .nettiers, которое будет генерировать перечисления из справочных таблиц, однако SubSonic не предоставляет эту функциональность. Если у вас есть столбец SexId в вашей таблице, вы можете сделать следующее (необходимо добавить нулевые проверки):

public enum Sex { Male = 1, Female = 2 } 

public class Profile{
  public int ID {get; set;}
  public Sex Sex 
  {
    get { return (Sex)SexId; }
    set { SexId = (int)value; }
  }
  int SexId {get; set;}
}
...