共用方式為


ObjectStateManager.ChangeRelationshipState<TEntity> 方法 (TEntity, Object, Expression<Func<TEntity, Object>>, EntityState)

[此頁面專屬於 Entity Framework 第 6 版。最新版本可從 'Entity Framework' NuGet 套件取得。如需 Entity Framework 的詳細資訊,請參閱 msdn.com/data/ef。]

變更兩個實體物件之間關聯性的狀態,其中的關聯性狀態是依據兩個相關物件和定義巡覽屬性的 LINQ 運算式而指定的。

命名空間:  System.Data.Entity.Core.Objects
組件:  EntityFramework (在 EntityFramework.dll 中)

語法

'宣告
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
Public Overridable Function ChangeRelationshipState(Of TEntity As Class) ( _
    sourceEntity As TEntity, _
    targetEntity As Object, _
    navigationPropertySelector As Expression(Of Func(Of TEntity, Object)), _
    relationshipState As EntityState _
) As ObjectStateEntry
'用途
Dim instance As ObjectStateManager 
Dim sourceEntity As TEntity
Dim targetEntity As Object 
Dim navigationPropertySelector As Expression(Of Func(Of TEntity, Object))
Dim relationshipState As EntityState 
Dim returnValue As ObjectStateEntry 

returnValue = instance.ChangeRelationshipState(sourceEntity, _
    targetEntity, navigationPropertySelector, _
    relationshipState)
[SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public virtual ObjectStateEntry ChangeRelationshipState<TEntity>(
    TEntity sourceEntity,
    Object targetEntity,
    Expression<Func<TEntity, Object>> navigationPropertySelector,
    EntityState relationshipState
)
where TEntity : class
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1006:DoNotNestGenericTypesInMemberSignatures")]
public:
generic<typename TEntity>
where TEntity : ref class 
virtual ObjectStateEntry^ ChangeRelationshipState(
    TEntity sourceEntity, 
    Object^ targetEntity, 
    Expression<Func<TEntity, Object^>^>^ navigationPropertySelector, 
    EntityState relationshipState
)
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
abstract ChangeRelationshipState : 
        sourceEntity:'TEntity * 
        targetEntity:Object * 
        navigationPropertySelector:Expression<Func<'TEntity, Object>> * 
        relationshipState:EntityState -> ObjectStateEntry   when 'TEntity : not struct
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
override ChangeRelationshipState : 
        sourceEntity:'TEntity * 
        targetEntity:Object * 
        navigationPropertySelector:Expression<Func<'TEntity, Object>> * 
        relationshipState:EntityState -> ObjectStateEntry   when 'TEntity : not struct
JScript does not support generic types and methods.

類型參數

  • TEntity
    來源物件的實體類型。

參數

  • sourceEntity
    類型:TEntity
    位於關聯性其中一端之來源實體的物件執行個體或 EntityKey
  • targetEntity
    類型:System.Object
    位於關聯性另一端之目標實體的物件執行個體或 EntityKey

傳回值

類型:System.Data.Entity.Core.Objects.ObjectStateEntry
已變更之關聯性的 ObjectStateEntry

例外狀況

例外狀況 條件
ArgumentNullException

當來源、目標或選取器為 null 時。

ArgumentException

選取器格式不正確,或者無法傳回導覽屬性。

InvalidOperationException

當來源或目標的狀態為 Deleted 時,嘗試將關聯性的狀態變更為 DeletedDetached 以外的值;或者當來源或目標的狀態為 Added 時,嘗試將關聯性的狀態變更為 AddedDetached 以外的值;或者當狀態不是有效的 EntityState 值時

請參閱

參考

ObjectStateManager 類別

ChangeRelationshipState 多載

System.Data.Entity.Core.Objects 命名空間