Procedura: eseguire query su tipi complessi (Entity Framework)
In questo argomento viene illustrato come eseguire una query che restituisce oggetti di tipo entità contenenti una proprietà di tipo complesso. Per ulteriori informazioni sui tipi complessi, vedere Oggetti di tipo complesso (Entity Framework) e How to: Create and Modify Complex Types.
Per eseguire il codice in questo esempio
Aggiungere il Modello Sales di AdventureWorks al progetto e configurare il progetto per l'utilizzo di Entity Framework . Per ulteriori informazioni, vedere Procedura: utilizzare la procedura guidata Entity Data Model (Entity Framework).
Nella tabella codici per l'applicazione aggiungere le istruzioni using seguenti (Imports in Visual Basic):
Imports System Imports System.Collections.Generic Imports System.Collections Imports System.Data.Common Imports System.Data Imports System.IO Imports System.Data.SqlClient Imports System.Data.EntityClient Imports System.Data.Metadata.Edm
using System; using System.Collections.Generic; using System.Collections; using System.Data.Common; using System.Data; using System.IO; using System.Data.SqlClient; using System.Data.EntityClient; using System.Data.Metadata.Edm;
Fare doppio clic sul file edmx per visualizzare il modello nella finestra Browser modello di Entity Designer.
Nell'area di Entity Designer selezionare le proprietà Email e Phone del tipo di entità Contact, quindi fare clic con il pulsante destro del mouse e scegliere Effettua refactoring nel nuovo tipo complesso. Un nuovo tipo complesso con le proprietà selezionate Email e Phone verrà aggiunto a Browser modello.
Rinominare il nuovo tipo in EmailPhone. Rinominare la proprietà del tipo di entità Contact in EmailPhoneComplexType.
Per informazioni sulla creazione e la modifica di tipi complessi tramite la procedura guidata Entity Data Model, vedere How to: Refactor Existing Properties into a Complex Type Property (Entity Data Model Tools) eHow to: Create and Modify Complex Types.
Esempio
Nell'esempio seguente viene eseguita una query che restituisce una raccolta di Contacts
. Il tipo Contact
contiene una proprietà di tipo complesso, EmailPhoneComplexProperty
, costituita da una proprietà EmailAddress
e da una proprietà Phone
. L'esempio restituisce la proprietà ContactID
e i valori del tipo complesso EmailPhoneComplexType
.
Using context As New AdventureWorksEntities()
Dim contacts = From contact In context.Contacts _
Where contact.ContactID = 3 _
Select contact
For Each contact As Contact In contacts
Console.WriteLine("Contact Id: " & contact.ContactID)
Console.WriteLine("Contact's email: " & contact.EmailPhoneComplexProperty.EmailAddress)
Console.WriteLine("Contact's phone#: " & contact.EmailPhoneComplexProperty.Phone)
Next
End Using
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
var contacts =
from contact in context.Contacts
where contact.ContactID == 3
select contact;
foreach (Contact contact in contacts)
{
Console.WriteLine("Contact Id: " + contact.ContactID);
Console.WriteLine("Contact's email: " + contact.EmailPhoneComplexProperty.EmailAddress);
Console.WriteLine("Contact's phone#: " + contact.EmailPhoneComplexProperty.Phone);
}
}
Vedere anche
Riferimento
Complex Type Objects
How to: Create and Modify Complex Types