Introductie
Stel ik heb de volgende tabel:
En dit is mijn object:
Zoals je kan zien heeft mijn object een property die niet in mijn tabel zit: IsOverdue
Deze propertie wordt berekend met deze method:
Vraag
Ik zou graag willen weten of het mogelijk is met Nhibernate of Linq om alle contracten op te halen die overdue zijn. Hiermee bedoel ik dus alle contracten waarvoor geldt (IsOverdue == true).
Met SQL lukt dat natuurlijk makkelijk:
En ik kan deze code ook wel in Nhibernate of in Linq gaan schrijven, maar ik wil dat dus niet doen, maar eigenlijk de property IsOverdue gebruiken.
Misschien een beetje teveel van het goede, omdat dit een combinatie is van Linq-to-SQL en Linq-to-Objects, maar het lijkt me toch wel een interessant vraagstuk.
Stel ik heb de volgende tabel:
code:
1
2
3
4
5
6
| Contracts ------------- ID CustomerID DateLastPayment Valid |
En dit is mijn object:
code:
1
2
3
4
5
6
7
| Contract ------------- ID CustomerID LastPaymentDate Valid IsOverdue |
Zoals je kan zien heeft mijn object een property die niet in mijn tabel zit: IsOverdue
Deze propertie wordt berekend met deze method:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| public virtual bool IsOverdue { get { if (Valid && LastPaymentDate < System.DateTime.Now.AddDays(-31) ) { return true; } else { return false; } } } |
Vraag
Ik zou graag willen weten of het mogelijk is met Nhibernate of Linq om alle contracten op te halen die overdue zijn. Hiermee bedoel ik dus alle contracten waarvoor geldt (IsOverdue == true).
Met SQL lukt dat natuurlijk makkelijk:
SQL:
1
2
3
| select * from Contracts where Valid = 1 and ( DateLastPayment< dateadd(dd,-31, GETDATE() ) ) |
En ik kan deze code ook wel in Nhibernate of in Linq gaan schrijven, maar ik wil dat dus niet doen, maar eigenlijk de property IsOverdue gebruiken.
Misschien een beetje teveel van het goede, omdat dit een combinatie is van Linq-to-SQL en Linq-to-Objects, maar het lijkt me toch wel een interessant vraagstuk.