Subsonic 3:SimpleRepository。 如何将枚举映射到表列

发布于 2024-07-26 08:09:13 字数 483 浏览 3 评论 0原文

我有一个数据库表(Profile)来描述一个人。 该表有一列“性别”(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 插入一个新行,但“性别”字段为 NULL。 我尝试了“性别”列的 INT 和 VARCHAR 类型,但没有任何结果。 我还尝试了枚举的另一个名称,例如“SexEnum”。 你有什么想法? 可能需要某种名称约定或表列的特殊类型。 先感谢您。

I have a DB table (Profile) to describe a person. This table has a column "Sex" (int).
In .NET part I have:

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);

After this operation Subsonic inserts a new row, but a "Sex" field is NULL. I tried INT and VARCHAR type for "Sex" column but without any result. Also I tried another name for enum, for example "SexEnum".
Do you have any ideas? May be some name convention is needed or a special type for a table column.
Thank you in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荒芜了季节 2024-08-02 08:09:13

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

I assume you're used to using something like .nettiers that will generate enums from lookup tables, however SubSonic does not provide this functionality.
If you have a SexId column in your table you could do the following (null checks need adding):

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;}
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文