Nous avons deux tables:
Parent
ID: Entier // Clé primaire
Nom: String
DataSet Relations ou linq recherche de meilleures performances?
enfant
FK: Entier // Référence à Parent.ID
MoreInfo: Chaîne
Le parent a 100 000 lignes, l'enfant a 10 000 lignes (un grand nombre de lignes dans parent pas utilisé chez l'enfant)
Actuellement nous faisons:
MyDS.Relations.Add("PC", MyDS.Tables["Parent"].Columns["ID"],
MyDS.Tables["Child"].Columns["FK"]);
foreach (DataRow drChild in MyDS.Tables["Child"].AsEnumerable())
DataRow drParent = drChild.GetParentRows(MyDS.Relations["PC"]).FirstOrDefault();
Nous avons pensé à changer juste la recherche manuelle avec Linq:
foreach (DataRow drChild in MyDS.Tables["Child"].AsEnumerable())
DataRow drParent = MyDS.Tables["Parent"].AsEnumerable().FirstOrDefault(
drParent => drParent["ID"] == drChild["FK"]);
La table enfant est itérés une seule fois et la l'ensemble de données est éliminé. N'importe qui a des expériences en utilisant une méthode ou l'autre - est la création de la relation dans la méthode1 un gaspillage de temps si elle n'est utilisée qu'une seule fois?