Gewusst wie: Abfragen einer Entität, die getrennten Tabellen zugeordnet wurde

Wenn Sie ältere Daten in einem konzeptionellen Modell verwenden, ist es manchmal sinnvoll, eine einzelne Entität zwei Tabellen in der Datenbank zuzuordnen. Dies ist möglich, wenn die beiden Tabellen einen gemeinsamen Schlüssel haben, wie z. B. die Tabellen Customer und Store der "AdventureWorks"-Beispieldatenbank, die im Lieferumfang von SQL Server 2005 enthalten ist.

Der Beispielcode in diesem Thema verwendet das konzeptionelle Modell, das im Thema Gewusst wie: Definieren eines Modells mit einer einzelnen Entität, der zwei Tabellen zugeordnet werden definiert wurde. Objektabfragen für Entitäten, die zwei Tabellen zugeordnet sind, unterscheiden sich nicht von Abfragen anderer Entitäten. Das Mapping hat keine Auswirkungen auf die Codesyntax.

So erstellen Sie das Projekt mit einer Entität, die separaten Tabellen zugeordnet ist

  1. Erstellen Sie eine Konsolenanwendung.

  2. Fügen Sie einen Verweis auf das in Gewusst wie: Definieren eines Modells mit einer einzelnen Entität, der zwei Tabellen zugeordnet werden definierte konzeptionelle Modell hinzu.

  3. Fügen Sie Verweise auf System.Data.Entity und System.Runtime.Serialization hinzu.

  4. Fügen Sie die Präprozessordirektive für das AdventureWorksModel-Modell hinzu, das in Gewusst wie: Definieren eines Modells mit einer einzelnen Entität, der zwei Tabellen zugeordnet werden implementiert wurde.

Beispiel

Die Entität, die in diesem Beispiel separaten Tabellen zugeordnet wird, kann zum Auflisten von Ergebnissen in einer foreach-Schleife verwendet werden. Im folgenden Code sind Eigenschaften von beiden Tabellen des "Store"-Entitäts-Mappings dargestellt.

Option Explicit On
Option Strict On
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports StoreCustomer_VB.AdventureWorksModel

Module Module1
    Sub Main()
        Using objCtx As AdventureWorksEntities =
                        New AdventureWorksEntities()
            For Each store As Store In objCtx.Store
                Console.WriteLine("CustomerId: {0} Name: {1} " & vbNewLine _
                    & vbTab & "Account#: {2} SalespersonId: {3}", _
                    store.CustomerID, store.Name, store.AccountNumber, store.SalesPersonID)
                Console.Write(vbNewLine)
            Next
        End Using
    End Sub
End Module
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AdventureWorksModel;

namespace ClientStoreCustomerSplit
{
    class Program
    {
        static void Main(string[] args)
        {
            using (AdventureWorksEntities objCtx = new AdventureWorksEntities())
            {
                foreach (Store store in objCtx.Store)
                    Console.WriteLine("CustomerId: {0} Name: {1} \r\n\t" +
                    "Account#: {2} SalespersonId: {3}",
                        store.CustomerID, store.Name, 
                        store.AccountNumber, store.SalesPersonID );
            }
        }
    }
}

Siehe auch

Aufgaben

Gewusst wie: Definieren eines Modells mit einer einzelnen Entität, der zwei Tabellen zugeordnet werden