2010-04-14 4 views
1

I asked on SO a few days ago Quelle était la manière la plus simple de construire un wrapper autour d'une base de données récemment terminée. J'ai pris le conseil et utilisé sqlmetal pour construire des classes linq autour de ma conception de base de données.Comment utiliser Linq-to-sql pour itérer les enregistrements db?

Maintenant, j'ai deux problèmes. Un, je ne sais pas LINQ. Et, deux, j'ai été choqué de réaliser combien il est difficile d'apprendre. J'ai un livre sur LINQ (Linq In Action de Manning) et cela m'a aidé, mais au bout du compte, ça va me prendre quelques semaines pour avoir de la traction et j'ai besoin de faire quelques progrès sur mon projet aujourd'hui. Donc, je cherche de l'aide pour commencer. Cliquez sur HERE pour voir mon schéma de base de données simple. Cliquez sur HERE pour afficher la classe vb générée pour le schéma.

Mes besoins sont simples. J'ai une application de console. La table principale est la table SupplyModel. La plupart des autres tables sont des tables enfants de la table SupplyModel. Je souhaite parcourir tous les enregistrements du modèle d'approvisionnement. Je veux saisir les données pour un modèle d'approvisionnement, puis DoStuff avec les données. Et j'ai également besoin d'itérer à travers les enregistrements enfant, pour chaque modèle d'approvisionnement, par exemple les NumberedInventories et DoStuff avec cela aussi bien.

J'ai besoin d'aide pour faire cela en VB plutôt qu'en C# si possible. Je ne cherche pas toute la solution ... si vous pouvez fournir quelques extraits de code pour me mettre en route, ce serait génial.

Merci pour votre aide.

EDIT
Pour mémoire, je l'ai déjà écrit le code suivant ...

Dim _dataContext As DataContext = New DataContext(ConnectionStrings("SupplyModelDB").ConnectionString) 
Dim SMs As Table(Of Data.SupplyModels) = _dataContext.GetTable(Of Data.SupplyModels)() 
Dim query = From sm In SMs Where sm.SupplyModelID = 1 Select sm 

Ce code fonctionne ... J'ai un objet de requête et je peux utiliser ObjectDumper pour énumérer et décharge les données ... mais je n'arrive toujours pas à comprendre ... parce que ObjectDumper utilise la réflexion et d'autres constructions de langage que je ne comprends pas. Il énumère les données parent et enfant comme je veux (quand level = 2).

S'IL VOUS PLAÎT AIDER ... Je suis coincé. Aidez-moi!

Seth

Répondre

2

en C# serait:

var result = from s in _dataContent.SupplyModels where s.SupplyModelID==1 select s; 
    foreach(SupplyModel item in result) 
    { 
     // do stuff 
     foreach(SupplyModelChild child in item.SupplyModelChilds) 
     { 
      //do more stuff on the child 
     } 
    } 

et une version VB.NET (du convertisseur de code Telerik)

Dim result As var = From s In _dataContent.SupplyModels _ 
    Where s.SupplyModelID = 1 _ 
    Select s 
For Each item As SupplyModel In result 
    ' do stuff 
      'do more stuff on the child 
    For Each child As SupplyModelChild In item.SupplyModelChilds 
    Next 
Next 
+0

convertisseur de code Telerik: http: // convertisseur .telerik.com/ –

+0

Merci ... ça l'a fait ... c'était simple ... le problème c'est que la plupart de mon code utilisait une frappe implicite ce qui veut dire que je ne savais pas quels types de types étaient référencés et non intellisense . –

Questions connexes