How to: Add and Modify Objects with Complex Types (Entity Framework)
This topic uses the Entity Data Model designed in How to: Define a Model with Complex Type (Entity Framework).
To create an application and add complex type to storage
Create a console application project named CustomerComplexAddrClient.
Add references to System.Data.Entity and System.Runtime.Serialization namespaces.
Add a reference to the dll built from the project described in the topic How to: Define a Model with Complex Type (Entity Framework).
Add the schemas from the topic How to: Define a Model with Complex Type (Entity Framework) to the same folder as the executable.
Create an Application Configuration file as shown below.
Copy the example code to the Program.cs file.
Build and run the project.
// 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>
Example
The example code shown creates an entity of the CCustomer and a CAddress of complex type. The properties of the CCustomer and CAddress are initialized. The CAddress is assigned to the Address property of the CCustomer. Both CCustomer and CAddress are added to storage and changes saved.
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());
}
}
}
}
See Also
Tasks
How to: Define a Model with Complex Type (Entity Framework)
How to: Create and Execute Object Queries with Complex Types (Entity Framework)