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。
- navigationPropertySelector
類型:System.Linq.Expressions.Expression<Func<TEntity, Object>>
LINQ 運算式,此運算式會選取傳回所指定目標之來源的導覽屬性。
- relationshipState
類型:System.Data.Entity.EntityState
指定之關聯性的要求 EntityState。
傳回值
類型:System.Data.Entity.Core.Objects.ObjectStateEntry
已變更之關聯性的 ObjectStateEntry。
例外狀況
例外狀況 | 條件 |
---|---|
ArgumentNullException | 當來源、目標或選取器為 null 時。 |
ArgumentException | 選取器格式不正確,或者無法傳回導覽屬性。 |
InvalidOperationException | 當來源或目標的狀態為 Deleted 時,嘗試將關聯性的狀態變更為 Deleted 或 Detached 以外的值;或者當來源或目標的狀態為 Added 時,嘗試將關聯性的狀態變更為 Added 或 Detached 以外的值;或者當狀態不是有效的 EntityState 值時 |