Как создавать и выполнять запросы объектов со сложными типами (Entity Framework)
В этом примере используются схемы, определенные в разделе Как определить модель со сложным типом (платформа Entity Framework).
Создание проекта с использованием сложных типов
Создайте проект приложения командной строки с именем CustomerComplexAddrClient и добавьте ссылки на пространства имен System.Data.Entity и System.Runtime.Serialization.
Добавьте ссылку на библиотеку, созданную в проекте, описанном в разделе Как определить модель со сложным типом (платформа Entity Framework).
Добавьте схемы из раздела Как определить модель со сложным типом (платформа Entity Framework) в ту же папку, где расположен исполняемый файл.
Создайте файл конфигурации приложения, как показано в примере.
Скопируйте код из примера в файл Program.cs.
Добавьте файл конфигурации приложения с содержимым, показанным ниже.
Постройте и запустите проект.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="CustomerComplexAddressContext"
connectionString="metadata=.;
provider=System.Data.SqlClient;
provider connection string="
Data Source=serverName;
Initial Catalog=CustomerWComplexAddr;
Integrated Security=True;
multipleactiveresultsets=true""
providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
Примеры
В примере кода показываются все объекты CCustomers и внутренние свойства сложного типа CAddress. Контекст объекта содержит коллекцию CCustomers со сложным свойством Address. Свойство Address имеет тип CAddress. Все его внутренние свойства доступны из экземпляров типа CCustomer.
Option Explicit On
Option Strict On
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports CustomerComplexAddress_VB
Imports CustomerComplexAddress_VB.CustomerComplexAddr
Module Module1
Sub Main()
Try
Using objCtx As CustomerComplexAddrContext = _
New CustomerComplexAddrContext()
For Each customer As CCustomer In objCtx.CCustomers
Console.WriteLine("Customer Id: " & _
"{0} {1}" & vbNewLine & "{2} {3}," & _
"{4} {5}" & vbNewLine & "Phone: {6}", _
customer.CustomerId.ToString(), _
customer.CompanyName, _
customer.Address.StreetAddress, _
customer.Address.City, _
customer.Address.Region, _
customer.Address.PostalCode, _
customer.Address.Phone)
Console.Write(vbNewLine)
Next
End Using
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
End Sub
End Module
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CustomerComplexAddress;
namespace CustomerComplexAddressClient
{
class Program
{
static void Main(string[] args)
{
try
{
using (CustomerComplexAddressContext objCtx =
new CustomerComplexAddressContext())
{
foreach (CCustomer customer in objCtx.CCustomers)
{
Console.WriteLine("Customer Id: " +
"{0} {1}\r\n{2} {3}," +
"{4} {5}\n\rPhone: {6}",
customer.CustomerId.ToString(),
customer.CompanyName,
customer.Address.StreetAddress,
customer.Address.City,
customer.Address.Region,
customer.Address.PostalCode,
customer.Address.Phone);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}
См. также
Задачи
Как определить модель со сложным типом (платформа Entity Framework)
Как добавить и изменить объекты со сложными типами (платформа Entity Framework)