使用Fluent NHibernate映射数组

时间:2013-05-09 12:25:32

标签: c# nhibernate fluent-nhibernate mapping

我不确定流利的hibernate是否可以这样做,但我无法弄清楚如何。

我有一个表 - 个案和一些属性

ownerId,brokerId,shipperId

我想把它映射到我的财产:

int [] OrgsWithAccess

这可能吗?

这样当我检查组织是否可以访问案例时,我可以检查属性OrgsWithAccess而不是OwnerId == myorg.id或brokerId == myorg.id等。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,我建议您不要尝试以您提出的方式进行映射。

cases表看起来像是其他表之间的某种形式的联结表。我假设这些其他表每个都包含在应用程序中表示为实体的数据,并且有三个表,OwnerBrokerShipper

应该使用对应用程序中的实体的引用来映射

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);