2

私は今nhibernateを発見しています。したがって、私の質問はおそらく非常に愚かです:)

私がやろうとしていること(私はレガシーデータベースを使用しています)は、データの一部がテーブル値関数から取得されているエンティティを取得することです。私の実体は次のとおりです

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

ここで、AccessRightIdはテーブル値関数(fp_AccessRight('userId'))から取得されます。

私は次のマッピングを持っています

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」を任意の値に置き換えることはできません。ありがとう。それを行う方法はありますか?

4

1 に答える 1

1

やっと解決しました。

秘訣は次のように結合することでした:

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

次に、簡単にフィルターを有効にします

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

ここで例を見つけました。

于 2012-09-10T08:32:16.510 に答える