2


我想創建一個表(SQL Server)的包含用戶身份GUID,並在功能NHibernate參考吧,這裏是我的模型:流利的NHibernate參考的MembershipUser

public class Invoice { 
    public virtual Guid Identity { get; set; } 
    public virtual MembershipUser User { get; set; } 
    public virtual int Price { get; set; } 
} 

所以映射應:

public class InvoiceMap : ClassMap<Invoice> { 
    public InvoiceMap() { 
     Id(x => x.Identity).GeneratedBy.GuidNative(); 
     Reference(x => x.User).Column("User"); 
     Map(x => x.Price); 
     Table("invoices"); 
    } 
} 

但是隻有一個問題。類別MembershipUser也應映射。
如何在沒有映射的情況下做到這一點MembershipUser

回答

2

我想你的問題是「如何在nHibernate中使用MembershipUser/Membership和Role Provider」。

首先,如果你不想重新發明輪子,我建議從你的類中移除MembershipUser屬性,並且只需要引用一些標識符。否則它變得越來越複雜。稍後,您可以轉換/檢索您的MembershipProvider的...的MembershipUser

有CodePlex上的一個很好的文章描述瞭如何實現一個自定義的成員提供與NHibernate http://www.codeproject.com/Articles/55174/Custom-Fluent-Nhibernate-Membership-and-Role-Provi

+0

有沒有辦法做這樣的事情: 'Reference(x => x.User).Column(「User」)。Callback(x => MembershipProvider.GetUserById(x));'? –

+0

不,但我的意思是你可以把一個屬性放入你未映射的實體(類型爲MembershipUser)並手動設置 – MichaC

+0

btw你可以將它標記爲已回答,如果你還有問題,可以問一個更具體的問題,因爲這個其中一個有點含糊 – MichaC