次の方法で共有


方法: 外部キーのプロパティを使用してオブジェクト間のリレーションシップを変更する

このトピックでは、外部キーのプロパティを使用して、オブジェクト コンテキストの 2 つのオブジェクト間のリレーションシップを変更する方法について説明します。 その他の例については、「外部キーの使用 (Entity Framework)」を参照してください。

このトピックの例には、Adventure Works Sales Model が使用されています。このトピックのコードを実行するには、あらかじめプロジェクトに Adventure Works Sales Model を追加し、Entity Framework を使用するようにプロジェクトを構成しておく必要があります。詳細については、「Entity Data Model ウィザードを使用する方法 (Entity Framework)」、または「Entity Framework プロジェクトを手動で構成する方法」、および「Entity Data Model を手動で定義する方法 (Entity Framework)」を参照してください。

この例では、外部キーのプロパティを使用して、SalesOrderHeader オブジェクトと、関連付けられている注文の請求先住所を表す Address オブジェクトとのリレーションシップを変更する方法を示します。

Dim orderId As Integer = 43669
Dim addressId As Integer = 24

Using context As New AdventureWorksEntities()
    ' Get the order being changed. 
    Dim order As SalesOrderHeader = context.SalesOrderHeaders.First(Function(o) o.SalesOrderID = orderId)

    ' Chage the billing address. 
    order.BillToAddressID = addressId

    ' Write the current billing street address. 
    Console.WriteLine("Updated street: " & order.Address.AddressLine1)

    ' Save the changes. 

    context.SaveChanges()
End Using
int orderId = 43669;
int addressId = 24;

using (AdventureWorksEntities context
    = new AdventureWorksEntities())
{
    // Get the order being changed.
    SalesOrderHeader order = context.SalesOrderHeaders.First(o => o.SalesOrderID == orderId);

    // Chage the billing address.
    order.BillToAddressID = addressId;

    // Write the current billing street address.
    Console.WriteLine("Updated street: "
        + order.Address.AddressLine1);

    // Save the changes.
    context.SaveChanges();

}

参照

処理手順

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

概念

リレーションシップの定義と管理 (Entity Framework)