2012-12-15 85 views
5

在sql服務器中,我創建視圖,我可以檢查空值並將它們替換爲默認值(如果我想)(例如,ISNULL(PrimaryPhone,'No Primary#')作爲PrimaryPhone。在我的asp.net web窗體應用程序中使用了很多視圖,但我現在正在學習MVC 4,並且想要開始正確的使用Linq用另一個值替換空值/空值

我有一個模型,控制器和視圖爲我的客戶端表設置。 (「Not Entered」)或類似的東西來代替空值/空值 我相信這需要在控制器中進行,如果我錯了,請糾正我的問題

我看到一個例子,使用hasvalue,但它不可用智能感知。

如何在我的模型中不使用DefaultValue來替換空/空值?

感謝

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

回答

6

可以使用?? operator設置默認值時,事情是空:

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

如果您需要更多的控制,例如檢查null和空,也可以使用?: operator(也稱爲「條件運算符」或「三元運算符」):

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

謝謝Scott,那真的幫了我很大的忙。 –