Как добавить и изменить объекты со сложными типами (платформа Entity Framework)
В этом примере используется модель EDM, разработанная в разделе Как определить модель со сложным типом (платформа Entity Framework).
Создание приложения и добавление сложного типа к хранилищу
Создайте проект приложения командной строки с именем CustomerComplexAddrClient.
Добавьте ссылки на пространства имен System.Data.Entity и System.Runtime.Serialization.
Добавьте ссылку на библиотеку, созданную в проекте, описанном в разделе Как определить модель со сложным типом (платформа Entity Framework).
Добавьте схемы из раздела Как определить модель со сложным типом (платформа Entity Framework) в ту же папку, где расположен исполняемый файл.
Создайте файл конфигурации приложения, как показано ниже.
Скопируйте пример кода в файл Program.cs.
Постройте и запустите проект.
// 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="
Data Source=serverName;
Initial Catalog=CustomerWComplexAddress;
Integrated Security=True;
multipleactiveresultsets=true""
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)