2012-12-15 14 views
5

W serwerze sql generuję widoki, w których mogę sprawdzić wartości puste i zastąpić je wartością domyślną, jeśli chcę (np. ISNULL (PrimaryPhone, "No Primary #") AS PrimaryPhone. użyłem wielu widoków w mojej aplikacji do formularzy internetowych asp.net, ale teraz uczę się MVC 4 i chcę zacząć od razu ..Linq zastępuje pustą wartość pustą inną wartością

Mam model, kontroler i widok ustawiony dla mojego stołu klienta. być w stanie zastąpić puste/puste wartości ("Nie wpisano") lub coś podobnego. Wierzę, że to musi iść w kontrolerze, proszę mnie poprawić, jeśli się mylę

Widziałem przykład, że używa hasvalue, ale nie jest dostępny przez intellisense.

Jak zastąpić puste/puste wartości bez użycia DefaultValue w moim modelu?

Dzięki

var result = db.Clients.Select(x => new 
     { 
      CustomerID = x.CustomerID, 
      UserID = x.UserID, 
      FullName = x.FullName, 
      EmailAdd = x.emailadd.DefaultIfEmpty("No Email"),.... 

Odpowiedz

6

Można użyć ?? operator ustawić wartość domyślną, gdy coś jest zerowy:

var result = db.Clients.Select(x => new 
     { 
      CustomerID = x.CustomerID, 
      UserID = x.UserID, 
      FullName = x.FullName, 
      EmailAdd = x.emailadd ?? "No Email", ... 

Jeśli potrzebujesz więcej kontroli, na przykład sprawdzanie zarówno nieważne i pusta, można również użyć opcji ?: operator (zwanej również operatorem warunkowym lub operatorem potrójnym):

var result = db.Clients.Select(x => new 
     { 
      CustomerID = x.CustomerID, 
      UserID = x.UserID, 
      FullName = x.FullName, 
      EmailAdd = string.IsNullOrEmpty(x.emailadd) ? "No Email" : x.emailadd, ... 
+0

Dziękuję Scott, to naprawdę mi pomogło. –

Powiązane problemy