2011-07-20 6 views
0

Aujourd'hui, j'ai trouvé une mystérieuse architecture .NET dans l'application que je développe au travail. J'ai besoin d'aide pour comprendre cette architecture. La personne qui l'a écrite est partie depuis longtemps et je suis coincé pour la comprendre. Nous créons un objet dans un code à partir d'un flux de travail aléatoire dans l'application web (sans importance pour ma question). L'objet est instancié à partir d'une classe trouvée dans un fichier Designer.vb. Je ne pouvais pas initialement voir le fichier jusqu'à ce que je clique sur "Afficher tous les fichiers" dans l'Explorateur de solutions dans Visual Studio. Il y a 3 fichiers reliés entre eux .. un fichier *.xsd, un fichier *.Designer.vb et un fichier *.xsx. Le fichier *.Designer.vb semble être généré automatiquement. Toute indication sur la façon dont cette architecture fonctionne et comment je peux changer les requêtes SQL serait appréciée.unknown Architecture .NET se connectant en quelque sorte à la base de données SQL

Objectif:
Get dbo.note.text de la colonne de table dbo.note et le placer dans la colonne dbo.exportnote.text. Je ne comprends tout simplement pas comment il se connecte à la base de données et obtient les données du champ dbo.note.text. Je veux rendre la requête plus spécifique (éventuellement mettre une clause where dessus). Mais vraiment, je veux juste comprendre comment il communique avec la base de données. La majeure partie du code utilise des procédures stockées. Donc je suis confus sur l'architecture. Ce qui serait vraiment cool, c'est si vous pouvez expliquer comment ce code a été généré automatiquement. Il semble que le fichier *.xsd est un fichier XML lorsque je "Afficher dans le navigateur" à partir de l'Explorateur de solutions.

Code pour instancier objet de classe de concepteur:

Dim _TestResultsReportDataSet As New TestResultsReportDataSet 

Image de l'Explorateur de solutions:

enter image description here

Snippet de classe partielle dans le concepteur:

 <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0"), _ 
Global.System.Serializable(), _ 
Global.System.ComponentModel.DesignerCategoryAttribute("code"), _ 
Global.System.ComponentModel.ToolboxItem(true), _ 
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema"), _ 
Global.System.Xml.Serialization.XmlRootAttribute("TestResultsReportDataSet"), _ 
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")> _  
Partial Public Class TestResultsReportDataSet 
    Inherits Global.System.Data.DataSet 

Appel # 1:

Dim filterString As String = String.Format("TestResultsReportId = {0}", _testResultsReportRow.TestResultsReportId) 
Dim _noteRow As TestResultsReportDataSet.NoteRow 
For Each _noteRow In _testResultsReportDataSet.Note.Select(filterString) 
    Dim _exportNote As New Exportnote(DataApplicationContext) 
    CopyNoteRowToExportNote(_exportNote, _noteRow, exportTestResultReportId) 
    _exportNote.Save() 
Next 

Appel en "CopyNoteRowToExportNote":

Public Sub CopyNoteRowToExportNote(ByVal _exportNote As Exportnote, _ 
            ByVal _NoteRow As TestResultsReportDataSet.NoteRow, _ 
            ByVal exportTestResultReportId As Integer) 
    With _exportNote 
     .Exporttestresultreport.SetId(exportTestResultReportId) 
     .LabAccessioningNumber = _NoteRow.LabAccessioningNumber 
     .Text = _NoteRow.Text 
    End With 
End Sub 

... si vous avez besoin de plus d'informations, il suffit de demander

+7

Google « fortement typées DataSet "et je pense qu'il va commencer à donner un sens ... – Scrappydog

+0

Merci, je vais faire quelques recherches à ce sujet. – MacGyver

Répondre

1

DataSet fortement typées était la réponse. Bien que je ne peux toujours pas comprendre comment ou où les tables SQL sont mappées à un DataTable DataSet fortement typé créé dans le Concepteur de DataSet lorsque le DataTable est créé manuellement, donc aucun TableAdaptor. C'est l'une de mes questions en suspens dans ma file d'attente.

0

Oui, il s'agit bien d'un jeu de données fortement typé. Vous trouverez des fichiers .xsd dans le projet pour l'ensemble de données. Le même jeu de données lorsqu'il est ouvert dans le concepteur aura (au moins un) adaptateurs de données associés à , et ceux-ci auront une chaîne de connexion stockée avec eux. Généralement, la chaîne de connexion qu'ils désignent provient du fichier de configuration. Donc le chercher.

L'utilisation de ces ensembles de données fortement typé, il est plus facile de faire des données encart/mise à jour/supprimer et les opérations de sélection, que nous pouvons fournir et vérifier les noms de table et les noms de colonnes au moment de la compilation

Questions connexes