我需要使用Fluent-nHibernate的組合主鍵(Azure表,主鍵是(PartitionKey,RowKey),我想映射他們與相應的屬性在實體(或組件屬性,如果更容易)複合主鍵聲明通過公約爲流利nHibernate
我的表看起來像:
{
PartitionKey PK,
RowKey PK,
[..]
}
與實體
public class MyRecord
{
public virtual string PartitionKey{get;set;}
public virtual string RowKey{get;set;}
[...]
}
我當前的projet使用定製的nHibernate驅動程序來定位AzureTable。
我設法使它與ClassMap或XML映射一起工作。所以我相信司機在工作。此外,azure表HTTP請求使用classmaps或XML聲明是正確的。
但是我真的需要約定,所以這不是一個可以接受的解決方案。
最後,即使數據存儲區使用(PartitionKey,RowKey),也總是有選項將RowKey映射爲PK。它也可以工作,但它並不真正令人滿意,因爲它引入了一個處理nHibernate和底層數據存儲區不匹配的unicity。
UPDATE:
我試圖建立一個自定義IIdentityConvention。 IIdentityInstance.Column()方法僅考慮第一次調用。 但是,如果我使用反射將兩列添加到基礎映射字段,則配置生成將失敗,並顯示XML驗證異常(屬性'class'required)
謝謝!它的工作,即使我最終放棄了nHibernate的Azure表訪問(也許我會再給它一次...) – Eilistraee