Domanda

LINQ to SQL consente ai mapping delle tabelle di convertirsi automaticamente avanti e indietro in Enum specificando il tipo per la colonna: funziona con stringhe o numeri interi.

Esiste un modo per rendere insensibile la conversione tra maiuscole e minuscole o aggiungere una classe di mappatura personalizzata o un metodo di estensione nel mix in modo da poter specificare come dovrebbe apparire la stringa in modo più dettagliato.

I motivi per farlo potrebbero essere la necessità di fornire una convenzione di denominazione più gradevole all'interno di un nuovo codice C# originale in un sistema in cui lo schema dei dati è già impostato (e su cui fanno affidamento alcune app legacy) in modo che il testo effettivo nel database possa' non essere cambiato.

È stato utile?

Soluzione

Puoi sempre aggiungere una classe parziale con lo stesso nome della classe LinqToSql e quindi definire i tuoi parametri e funzioni.Questi saranno quindi accessibili come parametri e metodi dell'oggetto per questo oggetto, nello stesso modo in cui sono accessibili i metodi LinqToSql generati automaticamente.

Esempio:Hai una classe LinqToSql denominata Car che mappa alla tabella Car nel DB.Puoi quindi aggiungere un file ad App_Code con il seguente codice al suo interno:

public partial class Car {
  // Add properties and methods to extend the functionality of Car
}

Non sono sicuro che questo soddisfi totalmente la tua esigenza di modificare il modo in cui le enumerazioni vengono mappate in una colonna.Tuttavia, potresti aggiungere un parametro in cui le proprietà get/set funzioneranno per mappare le enumerazioni di cui hai bisogno mantenendo le cose senza distinzione tra maiuscole e minuscole.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top