EntityReference<TEntity>.Load(MergeOption) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser in det relaterade objektet för detta EntityReference<TEntity> med det angivna kopplingsalternativet.
public:
override void Load(System::Data::Objects::MergeOption mergeOption);
public override void Load(System.Data.Objects.MergeOption mergeOption);
override this.Load : System.Data.Objects.MergeOption -> unit
Public Overrides Sub Load (mergeOption As MergeOption)
Parametrar
- mergeOption
- MergeOption
Anger hur objektet ska returneras om det redan finns i ObjectContext.
Undantag
Källan till EntityReference<TEntity> är null.
-eller-
En fråga returnerade mer än en relaterad slutpunkt.
-eller-
En fråga returnerade noll relaterade slut och en relaterad slut förväntades.
Kommentarer
Den här metoden används för att läsa in det relaterade objektet.
När det läses in används det relaterade objektet från egenskapen Value .
För att uttryckligen läsa in relaterade objekt måste du anropa Load metoden i den relaterade änden som returneras av navigeringsegenskapen. För en en-till-många-relation anropar Load du metoden på EntityCollection<TEntity>, och för en en-till-en-relation anropar du på LoadEntityReference<TEntity>. Detta läser in relaterade objektdata i objektkontexten. När en fråga returnerar resultat kan du räkna upp genom samlingen med objekt med hjälp av en foreach-loop (For Each...Next i Visual Basic) och villkorligt anropa metoden Load på EntityReference<TEntity> och EntityCollection<TEntity> för varje entitet i resultatet.
Metoden Load läser in relaterade objekt från datakällan oavsett om IsLoaded det är true.
Note
När du anropar metoden Load under en foreach (C#) eller For Each (Visual Basic) försöker Object Services öppna en ny dataläsare. Den här åtgärden misslyckas om du inte har aktiverat flera aktiva resultatuppsättningar genom att ange multipleactiveresultsets=true i reťazec pripojenia. Du kan också läsa in resultatet av frågan i en List<T> samling. Detta stänger dataläsaren och gör att du kan räkna upp över samlingen för att läsa in refererade objekt.
Den här metoden anropar den interna RelatedEnd.ValidateLoad metoden innan det relaterade objektet läses in, vilket verifierar att ett anrop till Load har rätt villkor. Metoden RelatedEnd.ValidateLoad kontrollerar att:
- Det finns ett giltigt ObjectContext .
- Entiteten är inte i ett Deleted tillstånd.
- MergeOption för Load måste vara NoTracking om och endast om källentiteten var NoTracking. Om källentiteten hämtades med någon annan MergeOptionkan det LoadMergeOption vara allt annat NoTracking än (till exempel kunde entiteten ha lästs in med OverwriteChanges och Load alternativet kan vara AppendOnly).
- Om
mergeOptionär NoTrackinganropas Load inte på en redan inläst entitet och Load anropas inte på en icke-tom, inte spårad RelatedEnd.
När det relaterade objektet redan har lästs in i ObjectContextframtvingar Load metoden den MergeOption som anges av parametern mergeOption . Mer information finns i Identitetsmatchning, Tillståndshantering och Ändringsspårning.