我有一個名爲所有者的NHibernate實體,有一個SSN列和TaxID列在數據庫中,我想有條件地映射到一個更通用的屬性基於不同屬性值StructureType的Owner實體。因此,如果StructureType是「我」,我想將SSN值映射到通用屬性,如果它的「C」我想將TaxID值映射到通用屬性。這可能使用流利的NHibernate(或者甚至常規的NHibernate)? Owner實體是一個只讀實體,沒有任何內容會被寫回數據庫。有條件地映射兩列到一個字段與流利NHibernate
1
A
回答
3
我能解決這個使用流利的NHibernate的一個公式:
Map(x => x.Identification)
.Formula("CASE WHEN StructureType = 'I' THEN SSN ELSE TaxID END");
(我在原來的職位,我說,這是與「我」和「C」,但實際上只之間'我'和所有其他類型)
1
爲什麼不添加只讀屬性?
public string Identification
{
get
{
string identification = string.Empty;
if (StructureType.Equals("I"))
identification = SSN;
else if (StructureType.Equals("C"))
identification = TaxID;
return identification;
}
}
相關問題
- 1. (流利)與CompositeId NHibernate映射
- 2. 流利的NHibernate將列映射到兩列中的一列
- 3. 流利Nhibernate映射
- 4. 流利Nhibernate映射
- 5. NHibernate /流利NHibernate映射
- 6. 流利Nhibernate與SQLite映射組件
- 7. NHibernate /流利NHibernate的動態列映射
- 8. 本地化的流利的NHibernate映射
- 9. 流利的NHibernate映射與多對多和額外的字段
- 10. 流利Nhibernate映射hasMany
- 11. 流利NHibernate映射參考
- 12. 流利的NHibernate映射
- 13. 流利Nhibernate枚舉映射
- 14. 流利的nHibernate映射
- 15. 流利的NHibernate映射
- 16. 流利NHibernate自動映射
- 17. 流利/ nhibernate映射問題
- 18. 流利的nhibernate映射
- 19. 流利,NHibernate的映射
- 20. 流利NHibernate單向映射
- 21. 流利NHibernate和HasMany映射
- 22. 流利的映射與自動映射與流利的NHibernate混合?
- 23. 流利NHibernate和與索引映射類
- 24. NHibernate的流利CompositeId與CustomType映射
- 25. 流利的NHibernate映射與ADO.NET
- 26. 流利NHibernate的一對一映射
- 27. 流利NHibernate:映射一對一
- 28. 映射NHibernate的私有字段(用流利NH)
- 29. 流利NHibernate:如何映射兩個非鍵列
- 30. 流利的NHibernate映射錯誤(Id列)
這將工作,但我相信我已經找到了在NHibernate中這樣做的方式,我將在下面詳細介紹。 – JEGardner
我能夠用Fluent NHibernate中的公式解決此問題: Map(x => x.Identification).Formula(「CASE WHEN StructureType ='I'Then SSN ELSE TaxID END」); (在我原來的文章中,我說它介於'I'和'C'之間,但實際上只是介於'I'和其他類型之間) – JEGardner