ObjectStateManager.TryGetObjectStateEntry メソッド

定義

特定のオブジェクトまたはリレーションシップ エントリの ObjectStateEntry オブジェクトを返そうとします。

オーバーロード

名前 説明
TryGetObjectStateEntry(EntityKey, ObjectStateEntry)

指定したEntityKeyとのオブジェクトまたはリレーションシップの対応するObjectStateEntryの取得を試みます。

TryGetObjectStateEntry(Object, ObjectStateEntry)

指定したObjectの対応するObjectStateEntryの取得を試みます。

TryGetObjectStateEntry(EntityKey, ObjectStateEntry)

指定したEntityKeyとのオブジェクトまたはリレーションシップの対応するObjectStateEntryの取得を試みます。

public:
 bool TryGetObjectStateEntry(System::Data::EntityKey ^ key, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry(System.Data.EntityKey key, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : System.Data.EntityKey * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (key As EntityKey, ByRef entry As ObjectStateEntry) As Boolean

パラメーター

key
EntityKey

指定された EntityKey

entry
ObjectStateEntry

このメソッドから制御が戻るときに、指定されたEntityKeyに対するObjectStateEntryが含まれます。このパラメーターは初期化されていない状態で渡されます。

返品

指定したEntityKeyに対応するObjectStateEntryがある場合にtrueされるブール値。それ以外の場合はfalse

例外

null (Visual Basic のNothing) 値は、key に指定されます。

次の例では、指定されたEntityKeyの対応するObjectStateEntryの取得を試みます。

int orderId = 43680;

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    ObjectStateManager objectStateManager = context.ObjectStateManager;
    ObjectStateEntry stateEntry = null;

    var order = (from o in context.SalesOrderHeaders
                 where o.SalesOrderID == orderId
                 select o).First();

    // Attempts to retrieve ObjectStateEntry for the given EntityKey.
    bool isPresent = objectStateManager.TryGetObjectStateEntry(((IEntityWithKey)order).EntityKey, out stateEntry);
    if (isPresent)
    {
        Console.WriteLine("The entity was found");
    }
}

次の例では、返されたObjectStateManagerTryGetObjectStateEntry(EntityKey, ObjectStateEntry) メソッドを使用して、エンティティ キーに基づいてオブジェクトを取得します。

private static void ApplyItemUpdates(SalesOrderDetail originalItem,
    SalesOrderDetail updatedItem)
{
    using (AdventureWorksEntities context =
        new AdventureWorksEntities())
    {
        context.SalesOrderDetails.Attach(updatedItem);
        // Check if the ID is 0, if it is the item is new.
        // In this case we need to chage the state to Added.
        if (updatedItem.SalesOrderDetailID == 0)
        {
            // Because the ID is generated by the database we do not need to
            // set updatedItem.SalesOrderDetailID.
            context.ObjectStateManager.ChangeObjectState(updatedItem, System.Data.EntityState.Added);
        }
        else
        {
            // If the SalesOrderDetailID is not 0, then the item is not new
            // and needs to be updated. Because we already added the
            // updated object to the context we need to apply the original values.
            // If we attached originalItem to the context
            // we would need to apply the current values:
            // context.ApplyCurrentValues("SalesOrderDetails", updatedItem);
            // Applying current or original values, changes the state
            // of the attached object to Modified.
            context.ApplyOriginalValues("SalesOrderDetails", originalItem);
        }
        context.SaveChanges();
    }
}

注釈

TryGetObjectStateEntry(EntityKey, ObjectStateEntry)を使用して、GetObjectStateEntry(EntityKey) メソッドによって発生したInvalidOperationExceptionを処理せずにObjectStateEntryを返します。

適用対象

TryGetObjectStateEntry(Object, ObjectStateEntry)

指定したObjectの対応するObjectStateEntryの取得を試みます。

public:
 bool TryGetObjectStateEntry(System::Object ^ entity, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry(object entity, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : obj * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (entity As Object, ByRef entry As ObjectStateEntry) As Boolean

パラメーター

entity
Object

取得したObjectStateEntryが属するObject

entry
ObjectStateEntry

このメソッドから制御が戻るときに、指定されたEntityKeyObjectStateEntryが格納されます。このパラメーターは初期化されていない状態で渡されます。

返品

指定したオブジェクトに対応するObjectStateEntryがある場合にtrueされるブール値。それ以外の場合はfalse

注釈

TryGetObjectStateEntry(Object, ObjectStateEntry) メソッドを使用して、GetObjectStateEntry(Object) メソッドによって発生したInvalidOperationExceptionを処理せずにObjectStateEntryを返します。

適用対象