2

我現在正在發現nhibernate。因此,我的問題可能是非常愚蠢的:)nhibernate連接表值函數

我想要做的事(我正在使用遺留數據庫)是得到一個實體,它的一些數據來自表值函數。 我的實體是以下

public class Entity 
{ 
    public virtual int Id { get; protected set; } 
    .... 
    public virtual int AccessRightId { get; set; } 
} 

這裏訪問權限ID來自表值函數(fp_AccessRight( '用戶id'))

我有以下映射

public class EntityMap : ClassMap<Entity> 
    { 
    public EntityMap() 
    { 
     this.Id(entity => entity .Id);   
     this.Join(
      "fp_AccessRight('userId')", 
      join => 
      { 
       join.Fetch.Join(); 
       join.KeyColumn("EntityId"); 
       join.Map(t => t.AccessRightId, "AccessRightType"); 
       join.Table(); 
      }); 
    }   
} 

不幸的是,我無法用任何值替代'userId'。 謝謝。 有沒有辦法做到這一點?

+0

你可以發佈它作爲答案並接受它,讓其他人更容易找到它 – Firo

回答

1

我終於解決了。

訣竅是讓參加這樣的:

this.Join("fp_ACCOUNT_ACL(:AclFilter.userId)" 

,然後simpley啓用過濾

this.session.EnableFilter("AclFilter").SetParameter("userId", "bdd#5"); 

我發現了一個例子here