我不确定 fluent n hibernate 是否可以做到这一点,但我不知道怎么做。
我有一张桌子 -案例和一些属性
ownerId、brokerId、shipperId
我想将此映射到我的财产:
int[] OrgsWithAccess
这可能吗?
这样,当我检查组织是否有权访问案例时,我可以检查属性 OrgsWithAccess 而不是 OwnerId == myorg.id 或 brokerId == myorg.id 等。
我不确定 fluent n hibernate 是否可以做到这一点,但我不知道怎么做。
我有一张桌子 -案例和一些属性
ownerId、brokerId、shipperId
我想将此映射到我的财产:
int[] OrgsWithAccess
这可能吗?
这样,当我检查组织是否有权访问案例时,我可以检查属性 OrgsWithAccess 而不是 OwnerId == myorg.id 或 brokerId == myorg.id 等。
如果我正确理解您的问题,我不建议您尝试按照您提出的方式进行映射。
cases
表看起来像是其他表之间的某种形式的连接表。我将假设这些其他表每个都包含在应用程序中表示为实体的数据,并且存在三个表Owner
,Broker
和Shipper
。
OrgsWithAccess
应该使用对应用程序中实体的引用进行映射,即假设类看起来像
public class OrgsWithAccess
{
public virtual Owner { get; set; }
public virtual Broker { get; set; }
public virtual Shipper { get; set; }
}
然后映射看起来像
public class OrgsWithAccessMap : ClassMap<OrgsWithAccess>
{
public OrgsWithAccessMap()
{
References(x => x.Owner);
References(x => x.Broker);
References(x => x.Shipper);
}
}
然后在查询时,您只需查看属性OrgsWithAccess
session.QueryOver<OrgsWithAccess>().Where(x => x.Owner.Id == id);