Поделиться через


Как добавить и изменить объекты со сложными типами (платформа Entity Framework)

В этом примере используется модель EDM, разработанная в разделе Как определить модель со сложным типом (платформа Entity Framework).

Создание приложения и добавление сложного типа к хранилищу

  1. Создайте проект приложения командной строки с именем CustomerComplexAddrClient.

  2. Добавьте ссылки на пространства имен System.Data.Entity и System.Runtime.Serialization.

  3. Добавьте ссылку на библиотеку, созданную в проекте, описанном в разделе Как определить модель со сложным типом (платформа Entity Framework).

  4. Добавьте схемы из раздела Как определить модель со сложным типом (платформа Entity Framework) в ту же папку, где расположен исполняемый файл.

  5. Создайте файл конфигурации приложения, как показано ниже.

  6. Скопируйте пример кода в файл Program.cs.

  7. Постройте и запустите проект.

// The following syntax is used in the App.config file.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="CustomerComplexAddressContext" 
         connectionString="metadata=.;
         provider=System.Data.SqlClient;
         provider connection string=&quot;
         Data Source=serverName;
         Initial Catalog=CustomerWComplexAddress;
         Integrated Security=True;
         multipleactiveresultsets=true&quot;"
         providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

Примеры

В показанном примере кода создается сущность CCustomer и CAddress со сложным типом. Свойства CCustomer и CAddress инициализируются. CAddress назначается свойству Address сущности CCustomer. Обе сущности, CCustomer и CAddress, добавляются к хранилищу, и изменения сохраняются.

Option Explicit On
Option Strict On
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports CustomerComplexAddress


Module Module1

    Sub Main()
        Try
            Using objCtx As CustomerComplexAddressContext = _
                              New CustomerComplexAddressContext()

                Dim newCustomer12 As CCustomer = New CCustomer()
                newCustomer12.CustomerId = 12
                newCustomer12.ContactTitle = "Title 12"
                newCustomer12.ContactName = "Contact 12"
                newCustomer12.CompanyName = "Company 12"

                Dim newAddress12 As CAddress = New CAddress()
                newAddress12.StreetAddress = "1121 St"
                newAddress12.City = "Redmond"
                newAddress12.Region = "WA"
                newAddress12.Country = "USA"
                newAddress12.PostalCode = "97612"
                newAddress12.Phone = "2344567812"
                newAddress12.Fax = "3451238712"

                newCustomer12.Address = newAddress12

                objCtx.AddToCCustomers(newCustomer12)
                objCtx.SaveChanges()

            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 CustomerComplexAddrClient
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                using (CustomerComplexAddressContext objCtx =
                    new CustomerComplexAddressContext())
                {
                    CCustomer newCustomer10 = new CCustomer();
                    newCustomer10.CustomerId = 10;
                    newCustomer10.ContactTitle = "Title 10";
                    newCustomer10.ContactName = "Contact 10";
                    newCustomer10.CompanyName = "Company 10";

                    CAddress newAddress10 = new CAddress();
                    newAddress10.StreetAddress = "1001 St";
                    newAddress10.City = "Redmond";
                    newAddress10.Region = "WA";
                    newAddress10.Country = "USA";
                    newAddress10.PostalCode = "97600";
                    newAddress10.Phone = "2344567890";
                    newAddress10.Fax = "3451238700";

                    newCustomer10.Address = newAddress10;

                    objCtx.AddToCCustomers(newCustomer10);
                    objCtx.SaveChanges();
                    
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

См. также

Задачи

Как определить модель со сложным типом (платформа Entity Framework)
Как создавать и выполнять запросы объектов со сложными типами (Entity Framework)

Основные понятия

Сложный тип (модель EDM)