Результатом сопоставления NHibertnate HasManyToMany является CROSS JOIN - PullRequest
0 голосов
/ 12 августа 2010

Я пытаюсь добавить отображение в таблицу IdentityGroup, в которой ManyToMany IdentityUsers считали таблицу IdentityGroupIdentitiy.Однако, когда я добавляю отображение.Результат выглядит как перекрестное соединение.

Ожидаемый результат для группы из двух пользователей:

Group 1:
    User 1
    User 2

Текущий результат для группы из двух пользователей:

Group 1:
    User 1
    User 2
Group 1:
    User 1
    User 2

Мое отображение выглядит так:

mapping.HasManyToMany<IdentityUser>(x => x.Users)
       .Table("IdentityGroupIdentity")
       .ParentKeyColumn("identityGroup_cid")
       .ChildKeyColumn("identity_cid");

Код для извлечения данных:

public IQueryable<T> Find<T>(params string[] propertiesToLoad)
{
    var query = session.Linq<T>();
    foreach (var propName in propertiesToLoad)
       query.Expand(propName);

       if (typeof(T) is ISoftDeletable)
           query.Where(x => !(x as ISoftDeletable).IsDeleted);
       return query;
}

[...]

public IQueryable<IdentityGroup> Groups
{
    get { return Find<IdentityGroup>(new string[] { "DefaultOrganization", "DefaultLocation", "Users" }); }
}

Идеи муравья?

1 Ответ

0 голосов
/ 12 августа 2010

Разрешено не расширять свойство Users при извлечении ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...