亚音速3:SimpleRepository。如何将枚举映射到表列

时间:2009-07-13 10:04:38

标签: subsonic subsonic3

我有一个DB表(Profile)来描述一个人。该表有一个“Sex”(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类型但没有任何结果。我还为enum尝试了另一个名字,例如“SexEnum”。 你有什么想法?可能需要一些名称约定或表列的特殊类型。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

我假设您习惯使用类似.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;}
}