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


Код приложения с AssociationSetMapping (платформа Entity Framework)

Приведенный в этом разделе код приложения иллюстрирует использование на платформе Entity Framework хранимых процедур, добавляющих или удаляющих экземпляры ассоциаций. Модель объектов и хранимые процедуры, используемые в этом примере, описаны в разделе Сопоставление набора ассоциаций с хранимыми процедурами (платформа Entity Framework).

Для добавления и удаления ассоциаций между существующими сущностями используются две базовые последовательности кода.

  • Вызовите метод Add применительно к коллекции EntityCollection, заданной свойством NavigationProperty сущности, и укажите связанный объект. Это применимо к ассоциациям типа «один ко многим» и «многие ко многим».

  • Задайте связанный объект в качестве значения свойству Value объекта EntityReference. Это применимо к ассоциациям типа «один к одному» и «многие ко многим».

В следующем коде для создания новых ассоциаций между сущностями Contact и Address используется метод Add.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ContactInformationModel;

namespace ContactAddressModFunc
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ContactInformationEntities objCtx =
                              new ContactInformationEntities())
            {
                 for (int i = 1; i < 11; i++)
                 {
                     Contact contact = new Contact();
                     contact.ContactID = i;
                     contact.FirstName = "Contact " + i.ToString();
                     contact.LastName = "LastName " + i.ToString();

                     Address address = new Address();
                     address.AddressID = i;
                     address.StreetAddress = "Street Address " +
                                                 i.ToString();
                     address.City = "Seattle";

                     objCtx.AddToContacts(contact);
                     objCtx.AddToAddresses(address);
                     contact.Address.Add(address);
                     address.Contact.Add(contact);

                    
                 }
                 objCtx.SaveChanges();

                 foreach (Contact contact in objCtx.Contacts)
                 {
                     Console.WriteLine(contact.LastName);
                     contact.Address.Load();
                     foreach (Address address in contact.Address)
                         Console.WriteLine(address.StreetAddress);
                 }

            }

        }
    }
}

См. также

Задачи

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

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

Поддержка хранимых процедур (платформа Entity Framework)
Добавление, изменение и удаление объектов (платформа Entity Framework)