2009-02-11 13 views
9

Sono nuovo a LINQ. Ho semplicemente trascinato tutte le mie tabelle di database sulla finestra di progettazione in un dbml LINQ to SQL. Tutti i miei rapporti sono corretti e sembrano belli nel designer. Sono in grado di estrarre dati utilizzando un semplice codice LINQ. Voglio aggiungere i miei metodi ora ma non voglio soffiare via le mie modifiche se (quando) ho bisogno di rigenerare il mio dbml. Sto indovinando che ho appena creato un nuovo file di classe e impostato le classi parziali delle classi generate. È corretto? Per esempio, ho una classe generata chiamato SystemUser che contiene le colonne SystemUserId, username, password, PersonId, SecurityQuestionId, SecurityQuestionResponse. Voglio aggiungere un metodo chiamato vuoto autenticazione() e una nuova proprietà denominata bool autenticato. Fondamentalmente voglio passare un nome utente e una password per autenticazione() e impostare il autenticato proprietà basato sulla ricerca di un utente corrispondente, ecc Dove e come faccio a fare questo?Aggiunta di nuovi metodi a LINQ a classi generate SQL

risposta

13

Le classi generate da LINQ sono classi parziali, il che significa che è possibile estenderle creando il proprio partial classes o partial methods.

Nel tuo caso, puoi creare una classe parziale per il tuo SystemUser, quindi aggiungere i tuoi metodi lì. Non verranno sovrascritti se il file DBML viene rigenerato.

Qualcosa di simile:

public partial class SystemUser 
{ 
    public bool Authenticated { get; set; } 

    void Authenticate() 
    { 
     //Perform custom logic here. 
    } 
} 
+0

Tutte le risposte erano disponibili, ma mi è piaciuto il link che hai fornito. Sono nuovo di StackOverflow quindi penso che vinci !? Grazie. – user64874

+0

Woohoo! Grazie. :-) –

2

Dai un'occhiata a usare una classe parziale ... potrebbe adattarsi molto bene alla tua situazione.

1

Se si desidera che la classe abbia un nuovo metodo, è necessario creare un nuovo file e utilizzare la classe parziale.