ObjectStateManager.TryGetObjectStateEntry メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定のオブジェクトまたはリレーションシップ エントリの ObjectStateEntry オブジェクトを返します。
オーバーロード
TryGetObjectStateEntry(EntityKey, ObjectStateEntry) |
指定された ObjectStateEntry のオブジェクトまたはリレーションシップに対応する EntityKey の取得を試みます。 |
TryGetObjectStateEntry(Object, ObjectStateEntry) |
指定された ObjectStateEntry に対応する Object の取得を試みます。 |
TryGetObjectStateEntry(EntityKey, ObjectStateEntry)
指定された ObjectStateEntry のオブジェクトまたはリレーションシップに対応する EntityKey の取得を試みます。
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
パラメーター
- entry
- ObjectStateEntry
このメソッドから制御が戻った時点で、指定された ObjectStateEntry の EntityKey が格納されます。このパラメーターは初期化されていない状態で渡されます。
戻り値
指定された true
に対応する ObjectStateEntry が存在する場合は EntityKey のブール値。それ以外の場合は 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");
}
}
次の例では、返された TryGetObjectStateEntry(EntityKey, ObjectStateEntry) で ObjectStateManager メソッドを使用して、エンティティ キーに基づいてオブジェクトを取得します。
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) を使用して、ObjectStateEntry メソッドで発生した InvalidOperationException を処理せずに、GetObjectStateEntry(EntityKey) を返します。
適用対象
TryGetObjectStateEntry(Object, ObjectStateEntry)
指定された ObjectStateEntry に対応する Object の取得を試みます。
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
取得した Object が属する ObjectStateEntry。
- entry
- ObjectStateEntry
このメソッドから制御が戻った時点で、指定された ObjectStateEntry の EntityKey が格納されます。このパラメーターは初期化されていない状態で渡されます。
戻り値
指定されたオブジェクトに対応する true
が存在する場合は ObjectStateEntry のブール値。それ以外の場合は false
。
注釈
TryGetObjectStateEntry(Object, ObjectStateEntry) メソッドを使用して、ObjectStateEntry メソッドで発生した InvalidOperationException を処理せずに、GetObjectStateEntry(Object) を返します。
適用対象
.NET