2010-10-26 4 views

Répondre

1

code-première est plus sur la façon dont vous définissez votre modèle et carte à votre base de données. L'interrogation est entièrement un sujet distinct, et que vous utilisiez le support "POCO", model-first, ou le nouveau "POCO", l'interrogation devrait être exactement la même.

Dans votre cas, en supposant que vous avez un problème d'interrogation plutôt que d'un problème premier code, je pense que vous écririez légèrement différemment:

var query = context.Products.Take(1); 

Bien que si vous faites cela, vous voulez probablement l'article lui-même, donc cela pourrait être plus approprié:

Product product = context.Products.Take(1).SingleOrDefault(); 

if (product == null) // Do something... 

DoSomethingWithProduct(product); 
+0

Merci, en utilisant Take() fonctionne. Peut-être qu'il me manque quelque chose, car Top() ne fonctionne pas lorsque je suis passé au code d'abord, en interrogeant IDbSet (POCO) au lieu d'une entité générée par le concepteur Entity Framework. Take() utilise l'extension IQueryable , tandis que Top() utilise System.Data.Objects.ObjectQuery. Est-il encore possible d'utiliser Top() en quelque sorte? – Buginator

+0

Le code First est basé sur LINQ et la syntaxe LINQ pour cette fonctionnalité est Take, qui est fonctionnellement équivalente. Vous pouvez classer le DbSet sous-jacent dans ObjectQuery, puis appeler Top, mais je ne le recommanderais vraiment pas. – DamienG

Questions connexes