包含 AssociationSetMapping 的应用程序代码(实体框架)

本节中的应用程序代码演示实体框架如何使用用于添加或删除关联实例的存储过程。本示例中所用的对象模型和存储过程在将关联集映射到存储过程(实体框架)中有相关的介绍。

使用两个基本代码序列添加和删除现有实体间的关联。

  • 对由实体上的 NavigationProperty 所指定的 EntityCollection 调用 Add,并指定相关的对象。这适用于一对多和多对多关联。

  • EntityReferenceValue 属性设置为相关对象。这适用于一对一和多对一关联。

下面的代码使用 Add 方法在 Contact 和 Address 实体之间创建新的关联。

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);
                 }

            }

        }
    }
}

另请参见

任务

如何:更改对象间的关系(实体框架)

概念

存储过程支持(实体框架)
添加、修改和删除对象(实体框架)