nhibernate联接表值函数
我现在就要发现nhibernate了。因此,我的问题可能非常愚蠢:) 我试图做的(我正在使用一个遗留数据库)是获取一个实体,它的一些数据来自一个表值函数。 我的实体如下nhibernate联接表值函数,nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,我现在就要发现nhibernate了。因此,我的问题可能非常愚蠢:) 我试图做的(我正在使用一个遗留数据库)是获取一个实体,它的一些数据来自一个表值函数。 我的实体如下 public class Entity { public virtual int Id { get; protected set; } .... public virtual int AccessRightId { get; set; } } 其中AccessRightId来自表值函数(fp_AccessRight
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();
});
}
}
公共类EntityMap:ClassMap
{
公共实体映射()
{
this.Id(entity=>entity.Id);
这个,加入(
“fp_AccessRight('userId')”,
加入=>
{
join.Fetch.join();
join.KeyColumn(“EntityId”);
join.Map(t=>t.AccessRightId,“AccessRightType”);
join.Table();
});
}
}
不幸的是,我不能用任何值替换“userId”。
谢谢
有办法吗?我终于解决了
诀窍是使连接如下所示:
this.Join("fp_ACCOUNT_ACL(:AclFilter.userId)"
然后使用simpley启用过滤器
this.session.EnableFilter("AclFilter").SetParameter("userId", "bdd#5");
我找到了一个例子。您可以将其作为答案发布并接受,以便其他人更容易找到它