Дата отфильтрованных коллекций без функций - PullRequest
0 голосов
/ 24 июня 2009

У меня есть лицо, похожее на следующее:

public class Entity
{
    public List<DateItem> PastDates { get; set; }
    public List<DateItem> FutureDates { get; set; }
}

public class DateItem
{
    public DateTime Date { get; set; }
    /*
     * Other Properties
     * */
}

Где PastDates и FutureDates отображаются в один и тот же тип / таблицу. Я пытался найти способ, чтобы свойства прошлого и будущего автоматически отображались с помощью Nhibernate. Самый близкий, который я прибыл, был где пункт на отображении следующим образом

HasMany(x => x.PastDates)
            .AsBag().Cascade
            .AllDeleteOrphan()
            .KeyColumnNames.Add("EventId").Where("Date < currentdate()")
            .Inverse();

Где currentdate - UDF. Я не хочу иметь эти специфичные для базы данных функции, если смогу избежать этого, главным образом потому, что не могу затем протестировать свой DAL с SQLite, поскольку он не поддерживает функции или хранимые процедуры.

В данный момент я создаю прошлые и будущие коллекции с использованием Criteria и вручную добавляю их в DTO.

Кто-нибудь знает, как этого можно достичь без использования пользовательских функций?

Большое спасибо,

1 Ответ

1 голос
/ 30 июня 2009

Я не уверен, но я не думаю, что строка Where когда-либо анализируется; это просто чистый SQL, который вставляется непосредственно в запрос. Хотя я могу ошибаться, поэтому стоит посмотреть на что-то вроде , расширяющее диалект своими собственными пользовательскими функциями (что означает, что вы можете сделать то же самое и с диалектом в памяти).

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