C'est par exempleConstruct objet de LINQ utilisant les mêmes champs d'une autre requête
SQL
create view v_join
as select m.* , d.oneDetail from master m, detail d
where m.key = d.key
LINQ
var view = from v in dc.v_join select new
{
Master = ???? /// that is an issue, how can I construct the objects using same fields but from another query,
Detail = v.oneDetail
};
foreach (var entry in view)
{
Master mEntry = entry.Master; // then we can use it, there are no problems
}
Cette situation rencontre assez souvent et est-il un moyen difficile à construire l'objet en utilisant les mêmes champs mais à partir d'une autre vue, et utilise. Quand je fais une telle jointure à C# -side, j'obtiens de faibles performances, des problèmes avec des charges paresseuses etc. Et de toute façon LINQ émet de nombreuses requêtes pour récupérer chaque enregistrement de détail, est inacceptible au point de vue performance.
Il doit y avoir une solution évidente, je ne peux pas croire que personne n'a fait face au même problème. Toutes les solutions évidentes comme dc.Translate font presque la même chose mais pas exactement ce dont j'ai besoin.
Aide appréciée.
Oui, exactement, mais je veux éviter de construire chaque champ manuellement – igor
Je ne suis pas sûr de comprendre. Vous voulez une solution haute performance, mais vous ne voulez pas utiliser cette approche. L'avez-vous testé pour voir s'il est assez rapide? Si oui, alors pourquoi ne pas utiliser ce constructeur? –