2009-06-24 3 views
0

У меня есть объект, подобный ниже:Дата Отфильтрованный Коллекции без функций

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

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

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

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

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

ответ

1

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

Смежные вопросы