Legăturile LINQ către SQL pentru enums

LINQ to SQL permite maparea tabelelor pentru a converti automat înainte și înapoi în Enums prin specificarea tipului pentru coloană - aceasta funcționează pentru șiruri sau numere întregi.

Există o modalitate de a face insensibil cazul de conversie sau de a adăuga o clasă personalizată de cartografiere sau o metodă de extensie în mix, astfel încât să pot specifica ce ar trebui să arate mai exact în șir.

Motivele pentru a face acest lucru ar putea fi pentru a furniza o convenție de denumire mai frumoasă în interiorul unui nou cod C# funky într-un sistem în care schema de date este deja setată (și se bazează pe unele aplicații vechi), astfel încât textul real din baza de date poate " t sa fie schimbat.

0
fr hi bn
Nu mi-am dat seama că LINQ pentru maparea suportată de SQL a enums! Dar acum ... mulțumesc mult.
adăugat autor Richard Everett, sursa

1 răspunsuri

Puteți adăuga întotdeauna o clasă parțială cu același nume ca și clasa LinqToSql și apoi definiți parametrii și funcțiile proprii. Acestea vor fi apoi accesibile ca parametri obiect și metode pentru acest obiect, la fel ca și metodele LinqToSql generate automat.

Exemplu: Aveți o clasă LinqToSql numită Mașină care se potrivește cu tabelul Car din DB. Apoi puteți adăuga un fișier în App_Code cu următorul cod în el:

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

Nu sunt sigur dacă acest lucru corespunde în totalitate cerinței dvs. de a schimba modul în care Enums sunt cartografiate într-o coloană. Cu toate acestea, ați putea adăuga un parametru în care proprietățile get / set vor funcționa pentru a mapa enumurile de care aveți nevoie, păstrând în același timp lucrurile insensibile la litere mici.

0
adăugat