次の方法で共有


AssociationSetMapping を使用したアプリケーション コード (Entity Framework)

このセクションのアプリケーション コードでは、アソシエーションのインスタンスを追加または削除するストアド プロシージャが Entity Framework でどのように使用されるかを示します。この例で使用するオブジェクト モデルとストアド プロシージャについては、「ストアド プロシージャへのアソシエーション セットのマッピング (Entity Framework)」を参照してください。

2 つの基本的なコード シーケンスを使用して、既存のエンティティ間のアソシエーションを追加および削除します。

  • エンティティの 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);
                 }

            }

        }
    }
}

参照

処理手順

オブジェクト間のリレーションシップを変更する方法 (Entity Framework)

概念

ストアド プロシージャのサポート (Entity Framework)
オブジェクトの追加、変更、および削除 (Entity Framework)