• 30.03.2017
  • 3 minute de citit

In acest articol

Puteti personaliza codul generat de Visual Basic si C # in proiectele LINQ catre SQL folosind metode partiale . Codul generat de LINQ catre SQL defineste semnaturile ca o parte a unei metode partiale. Daca doriti sa implementati metoda, puteti adauga propria metoda partiala. Daca nu adaugati propria implementare, compilatorul renunta la semnatura metodelor partiale si apeleaza metodele implicite din LINQ la SQL.

Nota

Daca utilizati Visual Studio, puteti utiliza Object Relational Designer pentru a adauga validare si alte personalizari claselor de entitati.

De exemplu, maparea implicita pentru clasa Client din baza de date esantion Northwind include urmatoarea metoda partiala:

nul partial OnAddressChanged (); Partial Private Sub OnAddressChanged () End Sub

Puteti implementa propria metoda adaugand cod, cum ar fi urmatoarele, la propria clasa partiala de clienti:

public partial class Client {partial void OnAddressChanged (); partial nul OnAddressChanged () {// Introduceti aici logica de afaceri. }} Partial Class Private Private Sub OnAddressChanged () ‘Introduceti aici logica afacerii. End End End Class

Aceasta abordare este de obicei utilizata in LINQ to SQL pentru a suprascrie metodele implicite pentru Insert, Update, Delete si pentru a valida proprietatile in timpul evenimentelor din ciclul de viata al obiectelor.

Pentru mai multe informatii, consultati Metode partiale (Visual Basic) sau partiale (Metoda) (Referinta C #) (C #).

Exemplu

Descriere

Urmatorul exemplu prezinta ExampleClass mai intai, deoarece ar putea fi definit de un instrument de generare de cod, cum ar fi SQLMetal, si apoi cum puteti implementa doar una dintre cele doua metode.

Cod

// Instrumentul generator de cod defineste o clasa partiala, inclusiv // doua metode partiale. partiala clasa ExampleClass {partial void onFindingMaxOutput (); nul partial peFindingMinOutput (); } // Dezvoltatorul implementeaza una dintre metodele partiale. Compilatorul // arunca semnatura celeilalte metode. partial clasa ExampleClass {partial void onFindingMaxOutput () {Console.WriteLine (“Maximum a fost gasit.”); }} „Instrumentul generator de cod defineste o clasa partiala, incluzand„ doua metode partiale. Exemplu de clasa partiala Clasa partiala privata sub OnFindingMaxOutput () Sfarsit sub partial privat Sub OnFindingMinOutput () Sfarsit sub export ExportResultate () OnFindingMaxOutput () OnFindingMinOutput () Sfarsit clasa finala ‘Dezvoltatorul implementeaza una dintre metodele partiale. Compilatorul „renunta la cealalta metoda.

Exemplu

Descriere

Urmatorul exemplu utilizeaza relatia dintre expeditor si entitatile de comanda. Retineti printre metode metodele partiale, InsertShipper si DeleteShipper. Aceste metode anuleaza metodele partiale implicite furnizate de LINQ la maparea SQL.

Cod

public static int LoadOrdersCalled = 0; private IEnumerable <Order> LoadOrders (Expeditor expeditor) {LoadOrdersCalled ++; returneaza acest lucru.Orders.Where (o => o.ShipVia == expeditor.ShipperID); } public static int LoadShipperCalled = 0; expeditor privat LoadShipper (comanda comanda) {LoadShipperCalled ++; returneaza this.Shippers.Single (s => s.ShipperID == order.ShipVia); } public static int InsertShipperCalled = 0; partial nul InsertShipper (Expeditor expeditor) {InsertShipperCalled ++; // Apelati un serviciu Web pentru a efectua o operatie de inserare. InsertShipperService (expeditor); } public static int UpdateShipperCalled = 0; private void UpdateShipper (Expeditor original, Expeditor curent) {Expeditor expeditor = expeditor nou (); UpdateShipperCalled ++; // Apelati un serviciu Web pentru a actualiza expeditorul. InsertShipperService (expeditor); } public static bool DeleteShipperCalled; partial nul DeleteShipper (Expeditor expeditor) {DeleteShipperCalled = true; } Public Shared LoadOrdersCalled As Integer = 0 Function Private LoadOrders (ByVal shipper As Shipper) As _ IEnumerable (Of Order) LoadOrdersCalled + = 1 Return Me.Orders.Where (Function (o) o.ShipVia = _ shipper.ShipperID) Final Function Public Shared LoadShipperCalled As Integer = 0 Function Private LoadShipper (ByVal order As Order) As Shipper LoadShipperCalled + = 1 Return Me.Shippers.Single (Function (s) s.ShipperID = _ order.ShipVia) End Function Public Shared InsertShipperCalled As Integer = 0 Private Sub InsertShipper (instanta ByVal ca expeditor) InsertShipperCalled + = 1 ‘Apelati un serviciu Web pentru a efectua o operatie de inserare. InsertShipperService (shpr: = Nothing) End Sub Public Shared UpdateShipperCalled As Integer = 0 Private Sub UpdateShipper (ByVal original Ca Expeditor, ByVal curent _ Ca expeditor) UpdateShipperCalled + = 1 ‘Apelati un serviciu Web pentru a actualiza expeditorul. InsertShipperService (shpr: = Nothing) End Sub Public Shared DeleteShipperCalled As Boolean Private Sub DeleteShipper (instanta ByVal Ca Expeditor) DeleteShipperCalled = True End Sub

Vezi si

  • Efectuarea si transmiterea modificarilor de date
  • Personalizarea operatiilor de inserare, actualizare si stergere

salieri roberta gemma morena taxxi
sperma party matt hardcore morti di figa
rocco academy streaming morto di figa
valentina nappi pompa movie free porn ixxx
kicca martini porn movie xxx streaming
streaming italia porno mucche al pascolo video
xxx casting italiano mucchini
porno gratis salieri mungitura di sperma
cazzi culo nacho vidal e malena
hard academy 3 nacho vidal malena
venere nera xxx nacho vidal malena porn
salieri xxx.com nana inculata
julius porno nana tutta tana
free italian porn videos nana xxx
la maison de lamour nappi anal
culo in fuori nappi anale
xxx 666 nappi ass
lena centoxcento nappi blacked
sborra vip nappi brazzers
tina chanel nappi cum