Указание, когда возвращать ноль, а когда добавить беглый nHibernate на основе идентификатора - PullRequest
0 голосов
/ 20 июля 2011

Мы работаем в унаследованной кодовой базе с довольно грубой моделью данных.Прямо сейчас у нас есть Object Mapping, которое выглядит следующим образом:

using FluentNHibernate.Mapping;
using Validation.Domain;

namespace Validation.DomainMaps
{
    public sealed class BookMap : SubclassMap<Book>
   {
        public BookMap()
        {
            Map(x => x.Genre);

            References(x => x.Shelf, "ShelfId")
                .Nullable()
                .Not.LazyLoad()
                .NotFound.Ignore()
                .Cascade.All()
                .Fetch.Join();
        }
    }
}

В приложении книга без полки будет иметь ShelfId = 0. В таблице Shelf нет строки с идентификатором, равным Id0 и мы полагаемся на то, что nhibernate .NotFound.Ignore() вернет значение null, которое мы проверим и обработаем позже.

Это продвинуло нас далеко вперед, но теперь мы пытаемся вызвать исключение при попыткеи получить доступ к ненулевым полкам, которые не имеют записей в таблице полок.

В идеале nhibernate генерирует исключение только в том случае, если не может найти полку с не-0 Id и возвращает ноль, когда запрашивается полка с идентификатором 0.

Любая помощь будет исключительной!

1 Ответ

0 голосов
/ 03 августа 2011

Это не идеально, но всем, кто хочет заниматься подобными вещами, стоит взять с собой здесь

...