Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lagrade procedurer kan läggas till i O/R Designer och köras som vanliga DataContext metoder. De kan också användas för att åsidosätta standardbeteendet LINQ till SQL-körning som utför infogningar, uppdateringar och borttagningar när ändringar sparas från entitetsklasser till en databas (till exempel när metoden anropas SubmitChanges ).
Anmärkning
Om den lagrade proceduren returnerar värden som måste skickas tillbaka till klienten (till exempel värden som beräknas i den lagrade proceduren) skapar du utdataparametrar i dina lagrade procedurer. Om du inte kan använda utdataparametrar skriver du en partiell metodimplementering i stället för att förlita dig på åsidosättningar som genereras av O/R Designer. Medlemmar som mappas till databasgenererade värden måste anges till lämpliga värden efter slutförande av INSERT eller UPDATE åtgärder. Mer information finns i Ansvarsområden för utvecklaren i övergripande standardbeteende.
Anmärkning
LINQ till SQL hanterar databasgenererade värden automatiskt för identitet (automatisk inkrement), rowguidcol (databasgenererad globalt unik identifierare (GUID)) och tidsstämpelkolumner. Databasgenererade värden i andra kolumntyper resulterar oväntat i ett null-värde. Om du vill returnera de databasgenererade värdena bör du manuellt ange IsDbGeneratedtrue ochAutoSync till något av följande: AutoSync.Always, AutoSync.OnInsert eller AutoSync.OnUpdate.
Konfigurera uppdateringsbeteendet för en entitetsklass
Som standardinställning tillhandahålls logiken för att uppdatera en databas (infogningar, uppdateringar och borttagningar) med ändringar som gjorts i data i LINQ till SQL-entitetsklasser av LINQ till SQL-miljön. Körningen skapar standardkommandon INSERT, UPDATEoch DELETE som baseras på schemat för tabellen (kolumnen och primärnyckelinformationen). När standardbeteendet inte är önskat kan du konfigurera uppdateringsbeteendet genom att tilldela specifika lagrade procedurer för att utföra nödvändiga infogningar, uppdateringar och borttagningar som krävs för att ändra data i tabellen. Du kan också göra detta när standardbeteendet inte genereras, till exempel när entitetsklasserna mappas till vyer. Slutligen kan du åsidosätta standarduppdateringsbeteendet när databasen kräver tabellåtkomst via lagrade procedurer.
Anmärkning
Anvisningarna i den här artikeln illustrerar den senaste versionen av den interaktiva utvecklingsupplevelsen (IDE) som är tillgänglig i Visual Studio. Datorn kan visa olika namn eller platser för vissa av användargränssnittselementen. Du kanske använder en annan version av Visual Studio eller andra miljöinställningar. Mer information finns i Anpassa IDE-.
Tilldela lagrade procedurer för att åsidosätta standardbeteendet för en entitetsklass
Öppna LINQ till SQL-filen i designern. (Dubbelklicka på
.dbmlfilen i Solution Explorer.)I Server Explorer eller Database Explorer expanderar du Lagrade procedurer och letar upp de lagrade procedurer som du vill använda för kommandona Infoga, Uppdatera och/eller Ta bort för entitetsklassen.
Dra den lagrade proceduren till O/R Designer.
Den lagrade proceduren läggs till i metodfönstret som en DataContext metod. Mer information finns i DataContext Methods (O/R Designer).
Välj den entitetsklass som du vill använda den lagrade proceduren för att utföra uppdateringar för.
I fönstret Egenskaper väljer du kommandot som ska åsidosättas (Infoga, Uppdatera eller Ta bort).
Klicka på ellipsen (...) bredvid orden Använd Runtime för att öppna dialogrutan Konfigurera beteende .
Välj Anpassa.
Välj önskad lagrad procedur i listan Anpassa .
Granska listan över metodargument och klassegenskaper för att kontrollera att metodargumenten mappas till lämpliga klassegenskaper. Mappa de ursprungliga metodargumenten (
Original_<ArgumentName>) till de ursprungliga egenskaperna (<PropertyName> (Original)) för kommandonaUpdateochDelete.Anmärkning
Som standard mappas metodargument till klassegenskaper när namnen matchar. Om ändrade egenskapsnamn inte längre matchar mellan tabellen och entitetsklassen kan du behöva välja motsvarande klassegenskap att mappa till om designern inte kan fastställa rätt mappning.
Klicka på OK eller Använd.
Anmärkning
Du kan fortsätta att konfigurera beteendet för varje klass och beteendekombination så länge du klickar på Använd när du har ändrat dem. Om du ändrar klassen eller beteendet innan du klickar på Använd visas en varningsdialogruta som ger dig möjlighet att tillämpa ändringarna.
Om du vill återgå till att använda standardkörningslogiken för uppdateringar klickar du på ellipsen bredvid kommandot Infoga, Uppdatera eller Ta bort i fönstret Egenskaper och väljer sedan Använd körning i dialogrutan Konfigurera beteende .