Share via


Cómo: Consultar una entidad asignada a tablas independientes

Cuando se usan datos heredados en un modelo conceptual, a veces es útil poder asignar una sola entidad a dos tablas de la base de datos. Esto se puede hacer cuando dos tablas comparten una clave común, como en el caso de las tablas Customer y Store de la base de datos de ejemplo AdventureWorks que se incluye con SQL Server 2005.

El código del ejemplo de este tema usa el modelo conceptual definido en el tema Cómo: Definir un modelo con una única entidad asignada a dos tablas. La ejecución de consultas de objeto en una entidad asignada a dos tablas es idéntica a la consulta de otras entidades. La asignación no afecta a la sintaxis del código.

Para crear el proyecto usando una entidad asignada a tablas independientes

  1. Cree una aplicación de consola.

  2. Agregue una referencia al modelo conceptual definido en Cómo: Definir un modelo con una única entidad asignada a dos tablas.

  3. Agregue referencias a System.Data.Entity y System.Runtime.Serialization.

  4. Agregue la directiva de preprocesador para el modelo AdventureWorksModel implementado en Cómo: Definir un modelo con una única entidad asignada a dos tablas.

Ejemplo

La entidad asignada a tablas independientes de este ejemplo se puede usar para enumerar los resultados en un bucle foreach. El código siguiente muestra las propiedades de ambas tablas de la asignación de entidad 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 );
            }
        }
    }
}

Vea también

Tareas

Cómo: Definir un modelo con una única entidad asignada a dos tablas