2009-07-13 5 views
3

人を説明するDB表(プロファイル)があります。このテーブルには「Sex」(int)という列があります。 は、私が持っている.NETの一部では:亜音速3:SimpleRepository。列挙型を表の列にマップする方法

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

この操作後にサブソニックは、新しい行を挿入しますが、「セックス」フィールドがNULLです。私はINTとVARCHARタイプを "Sex"カラムにしようとしましたが、何の結果もありませんでした。また、私は列挙型の別の名前、例えば "SexEnum"を試しました。 アイデアはありますか?いくつかの名前の表記法が必要な場合や、テーブルの列に特別な型がある場合があります。 ありがとうございます。

答えて

2

私はルックアップテーブルから列挙を生成する.nettiersのようなものを使用することに慣れていると思いますが、SubSonicはこの機能を提供していません。あなたは次のことを行うことができ、あなたのテーブルでSexId列を持っている場合は (nullのチェックが追加必要):

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;} 
} 
+1

そしていつものセックスYESをマークすることを忘れないでください。 –

+0

笑@Rick。 "セックス - はい!"オースティン・パワーズ・ルール。 – eduncan911