2013-05-09 4 views
0

Я не уверен, сможет ли это сделать или нет, но я не могу понять, как это сделать.Сопоставление массива с использованием Fluent N Hibernate

У меня есть таблица - случаи и некоторые свойства

OwnerId, brokerId, shipperId

Я хочу сопоставить это мое имущество:

ИНТ [] OrgsWithAccess

Is это возможно?

Таким образом, когда я проверяю, если орг имеет доступ к делу, я могу проверить свойство OrgsWithAccess, а не OwnerId == myorg.id или brokerId == myorg.id и т.д.

+0

какое поле в таблице составляет массив 'int'? Как NHibernate обновит другие свойства «OrgsWithAccess» для согласованности, если каждая строка в базе данных представлена ​​только как «int» в массиве приложения? –

+0

Поля в базе данных являются владельцами, брокерскими, shipperid, такими же, как имена свойств класса – Haroon

ответ

0

Если я понимаю ваш вопрос правильно, я бы не рекомендовал пытаться сопоставить то, что вы просили.

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