J'ai une requête LINQ qui utilise 1 table + un grand nombre de vues. Je voudrais pouvoir écrire quelque chose comme ceci:Comment combiner une requête LINQ avec un IQueryable? <Guid>
IQueryable<Guid> mostViewedWriters;
switch (datePicker)
{
case DatePicker.Last12Hours:
mostViewedWriters = from x in context.tempMostViewed12Hours
select x.GuidId;
break;
case DatePicker.Last24Hours:
mostViewedWriters = from x in context.tempMostViewed24Hours
select x.GuidId;
break;
case DatePicker.Last36Hours:
mostViewedWriters = from x in context.tempMostViewed36Hours
select x.GuidId;
break;
}
var query = from x1 in context.Articles
join x2 in context.Authors on x1.AuthorId == x2.AuthorId
join x3 in mostViewedWriters on x2.AuthorId == x3.Id
select new { x2.AuthorName, x1.ArticleId, x1.ArticleTitle };
ci-dessus C# est pseudo-code écrit pour protéger les innocents (moi). L'essentiel de la question est la suivante: J'ai une requête qui est liée aux résultats d'une vue. Ce point de vue pourrait cependant être l'un des nombreux points de vue différents. Toutes les vues renvoient le même type de données. Je pensais que je pourrais être en mesure de créer un IQueryable qui contiendrait les Ids dont j'ai besoin et utiliser cette requête. Hélas, cet effort a calé.
En principe, je pense que ce que vous décrivez devrait fonctionner (bien qu'il puisse y avoir de nombreux problèmes techniques). Si vous essayez de compiler et d'exécuter votre échantillon, qu'obtenez-vous? –
Je pense que vous vouliez utiliser différents noms de vue dans votre pseudocode, par exemple. context.tempMostViewed36Hours. Non? – roufamatic
roufamatic, vous avez raison. Merci. – John