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
Erstellen Sie eine Konsolenanwendung.
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.
Fügen Sie Verweise auf System.Data.Entity und System.Runtime.Serialization hinzu.
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 );
}
}
}
}