c# – 對映到Nhibernate中的列舉位標誌
採取以下列舉標誌
[Flags] enum Permssions { CanComment = 1, CanEdit = 2, CanDelete = 4, CanRemoveUsers = 8, All = CanComment | CanEdit | CanDelete | CanRemoveUsers }
在NHibernate中,我已經對映到一個列舉,然後使用:
<property type="n.Permssions, n.Permssions" name="Permssions" column="Permssions"></property>
我的問題是,如何使用NHibnerate將位元欄位對映到Flag欄位?
當我對映一個列舉,並且這個列舉的型別為’int’的後備值時,我只是將我的列舉屬性對映到資料庫中的一個int欄位.我沒有遇到這個問題.
我已經做了這個標誌列舉,這只是工作沒有問題.
當組合某些標誌時,NHibernate會將這些標誌的“組合”保留在資料庫中的指定列中.
當您檢索具有“標誌列舉”屬性的例項時,NHibernate將重新構建為正確的組合.
例如,如果DB包含“3”,那麼NHibernate將使用適當值的組合填充屬性.
實際上,我讓NHibernate自己弄清楚:
<property name="OnCallType" column="OnCallType" />
OnCallType列在我的DB中為int型別,OnCallType屬性是具有flags屬性的列舉型別.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/672822/mapping-to-an-enum-bit-flag-in-nhibernate