In een database sla ik gegevens op over een vaste set produkten, Deze set produkten verandert dus nooit, en alle produkten in de set hebben een aantal statische gegevens zoals bijvoorbeeld de naam. Ook hebben al deze produkten een aantal waardes zoals prijs. Binnen een bepaalde periode wijzigen de prijzen van alle produkten in de database. Ik heb eea. als volgt in tabellen opgeslagen:
Produkten
ID
naam
Periode
ID
begindatum
einddatum
ProduktPrijs
ProduktID
PeriodeID
prijs
De tabellen zijn bold, en primaire sleutels italic. Nu wil ik mbv. LINQ to SQL een aantal klassen mappen met deze tabellen. Nou zou ik een association van Periode naar Produkt toe willen voegen, en vanuit de klasse Produkt een association naar ProduktPrijs. Voor produkten geldt dus:
Het probleem is echter dat tussen de klassen Periode en Produkt geen direct verband zit, en ik dus niets kan koppelen middels ThisKey and OtherKey. Tussen Produkt en ProduktPrijs zit wél een koppeling (ThisKey="ID", OtherKey="ProduktID"), maar hiermee kan ik geen koppeling maken tussen Periode.ID en ProduktPrijs.PeriodeID, aangezien de klasse Produkt er als het ware tussenin zit.
Ik vraag mij af of ik überhaupt op de juiste manier bezig ben en zo ja, hoe ik een association vanuit Periode naar ProduktPrijs kan leggen. Zo nee, welke methode kan voor dit soort verbanden het best gebruikt worden?
Ik weet hoe ik dit middels een LINQ query op kan lossen, maar zou dit graag middels een mapping en kortere LINQ queries oplossen.
Produkten
ID
naam
Periode
ID
begindatum
einddatum
ProduktPrijs
ProduktID
PeriodeID
prijs
De tabellen zijn bold, en primaire sleutels italic. Nu wil ik mbv. LINQ to SQL een aantal klassen mappen met deze tabellen. Nou zou ik een association van Periode naar Produkt toe willen voegen, en vanuit de klasse Produkt een association naar ProduktPrijs. Voor produkten geldt dus:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
| [Table(Name="Produkten")] public class Produkt { [Column(IsPrimaryKey = true)] public int ID; [Column] public string naam; [Association(ThisKey="ID", OtherKey="ProduktID")] public EntitySet<ProduktPrijs> produktPrijs; } |
Het probleem is echter dat tussen de klassen Periode en Produkt geen direct verband zit, en ik dus niets kan koppelen middels ThisKey and OtherKey. Tussen Produkt en ProduktPrijs zit wél een koppeling (ThisKey="ID", OtherKey="ProduktID"), maar hiermee kan ik geen koppeling maken tussen Periode.ID en ProduktPrijs.PeriodeID, aangezien de klasse Produkt er als het ware tussenin zit.
Ik vraag mij af of ik überhaupt op de juiste manier bezig ben en zo ja, hoe ik een association vanuit Periode naar ProduktPrijs kan leggen. Zo nee, welke methode kan voor dit soort verbanden het best gebruikt worden?
Ik weet hoe ik dit middels een LINQ query op kan lossen, maar zou dit graag middels een mapping en kortere LINQ queries oplossen.