Non sono sicuro se "Ranged Foreign Key Relationship" è un termine reale o se ho appena inventato, ma questo è quello di cui sto parlando:
Tabella gruppo età
int MinAge { get; set; }
int MaxAge { get; set; }
string Description { get; set; }
Tabella clienti
public int CustomerID { get; set; }
public string Name { get; set; }'
public int Age { get; set; }
public virtual AgeGroup AgeGroup { get; set; }
Viste le due tabelle precedenti, come posso unirmi a loro usando (EntityFramework, DataAnnontations, DbContext) e poter accedere a Customer.AgeGroup.Description
?
Considera i seguenti dati di esempio:
Fascia d'età
MinAge MaxAge Description
0 12 Youngin
13 19 Teenager
20 29 Twenties
30 39 Thirties
40 9999 Old
Clienti
CustomerID Name Age
345 Joe Smith 17
493 Cobaltikus 31
631 Jane Doe 29
Come posso metterli in relazione? Cobaltikus ha un'età di 31 anni. Non esiste un record AgeGroup corrispondente con 31. Il record AgeGroup corrispondente è quello con MinAge = 30 e MaxAge = 39. Posso farlo facilmente in SQL, ma come si fa con EntityFramework?
SELECT
AgeGroup.Description
FROM
Customer,
AgeGroup
WHERE
Customer.CustomerID = 493
AND AgeGroup.MinAge <= Customer.Age
AND AgeGroup.MaxAge >= Customer.Age