Procedura: creare ed eseguire query di oggetto utilizzando un'entità mappata a tabelle distinte
Quando si utilizzano dati legacy in Entity Data Model (EDM), è talvolta utile essere in grado di eseguire il mapping di una singola entità a due tabelle nel database. È possibile eseguire questa operazione quando due tabelle condividono una chiave comune, come nel caso delle tabelle Customer e Store del database di esempio AdventureWorks fornito con SQL Server 2005.
Nel codice dell'esempio incluso in questo argomento viene utilizzato il modello EDM definito nell'argomento Procedura: definire un modello con una singola entità mappata a due tabelle. L'esecuzione di query di oggetto su un'entità mappata a due tabelle è un processo identico all'esecuzione di query su altre entità. Il mapping non influisce sulla sintassi del codice.
Per creare il progetto utilizzando un'entità mappata a tabelle distinte
Creare un'applicazione console.
Aggiungere un riferimento al modello EDM definito in Procedura: definire un modello con una singola entità mappata a due tabelle.
Aggiungere riferimenti a System.Data.Entity e System.Runtime.Serialization.
Aggiungere la direttiva per il preprocessore per AdventureWorksModel implementato in Procedura: definire un modello con una singola entità mappata a due tabelle.
Esempio
L'entità di cui viene eseguito il mapping a tabelle distinte in questo esempio può essere utilizzata per enumerare i risultati in un ciclo foreach. Nel codice seguente vengono visualizzate le proprietà di entrambe le tabelle del mapping dell'entità Store.
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 );
}
}
}
}
Vedere anche
Attività
Procedura: definire un modello con una singola entità mappata a due tabelle