Где пункт в Свободном NHibernate Многие ко многим - PullRequest
4 голосов
/ 10 февраля 2010

Я пытаюсь настроить отображение «многие ко многим» в Fluent Nhibernate, у которого есть предложение where, присоединенное к дочерней таблице.

Вот как это должно работать:

HasManyToMany(p => p.Images)
  .Table("ProductImages")
  .ParentKeyColumn("ProductID")
  .ChildKeyColumn("ImageID")
  .Where("ImageTypeID = 2");

Столбец ImageTypeID находится в таблице изображений, но NHibernate предполагает, что он является частью таблицы ProductImages. Любая идея, как я могу указать это?

Спасибо!

Ответы [ 2 ]

10 голосов
/ 10 января 2011

Можно. Используйте .ChildWhere в вашем отображении Fluent NHibernate:

HasManyToMany(p => p.Images)
  .Table("ProductImages")
  .ParentKeyColumn("ProductID")
  .ChildKeyColumn("ImageID")
  .ChildWhere("ImageTypeID = 2");
0 голосов
/ 11 февраля 2010

Вы не можете, насколько я знаю. Я не уверен, что Где действительно для ассоциации «многие ко многим» .

Я бы справился с этим, создав метод расширения для IEnumerable<Image>, чтобы обеспечить легкую фильтрацию по типу изображения. Затем вы можете вызвать Images.Landscape (), например, для любой коллекции изображений.

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